From 63b63f4f5929db9c43817920129c4ce4448313a6 Mon Sep 17 00:00:00 2001
From: ftheirs <fernando@zondax.ch>
Date: Wed, 12 Jul 2023 16:44:22 -0300
Subject: [PATCH 1/5] keep backward compatibility

---
 app/src/apdu_handler.c            | 71 ++++++++++++++++++++++++-------
 app/src/common/actions.h          |  4 --
 app/src/crypto.c                  | 25 -----------
 app/src/crypto.h                  |  2 -
 docs/APDUSPEC.md                  | 21 +++++----
 tests_zemu/tests/standard.test.ts | 15 ++++---
 6 files changed, 76 insertions(+), 62 deletions(-)

diff --git a/app/src/apdu_handler.c b/app/src/apdu_handler.c
index efac26e8..94dcb2e0 100644
--- a/app/src/apdu_handler.c
+++ b/app/src/apdu_handler.c
@@ -61,7 +61,25 @@ __Z_INLINE void handle_getversion(__Z_UNUSED volatile uint32_t *flags, volatile
     THROW(APDU_CODE_OK);
 }
 
-static void extractHDPath(uint32_t rx, uint32_t offset) {
+__Z_INLINE uint8_t extractHRP(uint32_t rx, uint32_t offset) {
+    if (rx < offset + 1) {
+        THROW(APDU_CODE_DATA_INVALID);
+    }
+    MEMZERO(bech32_hrp, MAX_BECH32_HRP_LEN);
+
+    bech32_hrp_len = G_io_apdu_buffer[offset];
+
+    if (bech32_hrp_len == 0 || bech32_hrp_len > MAX_BECH32_HRP_LEN) {
+        THROW(APDU_CODE_DATA_INVALID);
+    }
+
+    memcpy(bech32_hrp, G_io_apdu_buffer + offset + 1, bech32_hrp_len);
+    bech32_hrp[bech32_hrp_len] = 0;     // zero terminate
+
+    return bech32_hrp_len;
+}
+
+__Z_INLINE void extractHDPath(uint32_t rx, uint32_t offset) {
     if ((rx - offset) < sizeof(uint32_t) * HDPATH_LEN_DEFAULT) {
         THROW(APDU_CODE_WRONG_LENGTH);
     }
@@ -75,12 +93,6 @@ static void extractHDPath(uint32_t rx, uint32_t offset) {
         THROW(APDU_CODE_DATA_INVALID);
     }
 
-    encoding = checkChainConfig(hdPath[1], bech32_hrp, bech32_hrp_len);
-    if (encoding == UNSUPPORTED) {
-        ZEMU_LOGF(50, "Chain config not supported for: %s\n", bech32_hrp)
-        THROW(APDU_CODE_COMMAND_NOT_ALLOWED);
-    }
-
     // Limit values unless the app is running in expert mode
     if (!app_mode_expert()) {
         for(int i=2; i < HDPATH_LEN_DEFAULT; i++) {
@@ -90,6 +102,24 @@ static void extractHDPath(uint32_t rx, uint32_t offset) {
     }
 }
 
+static void extractHDPath_HRP(uint32_t rx, uint32_t offset) {
+    extractHDPath(rx, offset);
+    // Set BECH32_COSMOS as default for backward compatibility
+    encoding = BECH32_COSMOS;
+
+    // Check if HRP was sent
+    if ((rx - offset) > sizeof(uint32_t) * HDPATH_LEN_DEFAULT) {
+        extractHRP(rx, offset + sizeof(uint32_t) * HDPATH_LEN_DEFAULT);
+        encoding = checkChainConfig(hdPath[1], bech32_hrp, bech32_hrp_len);
+        if (encoding == UNSUPPORTED) {
+            ZEMU_LOGF(50, "Chain config not supported for: %s\n", bech32_hrp)
+            THROW(APDU_CODE_COMMAND_NOT_ALLOWED);
+        }
+    } else if (hdPath[1] == HDPATH_ETH_1_DEFAULT) {
+        THROW(APDU_CODE_COMMAND_NOT_ALLOWED);
+    }
+}
+
 static bool process_chunk(volatile uint32_t *tx, uint32_t rx) {
     UNUSED(tx);
 
@@ -108,7 +138,8 @@ static bool process_chunk(volatile uint32_t *tx, uint32_t rx) {
         case P1_INIT:
             tx_initialize();
             tx_reset();
-            extractHDPath(rx, OFFSET_DATA);
+            extractHDPath_HRP(rx, OFFSET_DATA);
+
             return false;
         case P1_ADD:
             added = tx_append(&(G_io_apdu_buffer[OFFSET_DATA]), rx - OFFSET_DATA);
@@ -131,6 +162,13 @@ __Z_INLINE void handleGetAddrSecp256K1(volatile uint32_t *flags, volatile uint32
     uint8_t len = extractHRP(rx, OFFSET_DATA);
     extractHDPath(rx, OFFSET_DATA + 1 + len);
 
+    // Verify encoding
+    encoding = checkChainConfig(hdPath[1], bech32_hrp, bech32_hrp_len);
+    if (encoding == UNSUPPORTED) {
+        ZEMU_LOGF(50, "Chain config not supported for: %s\n", bech32_hrp)
+        THROW(APDU_CODE_COMMAND_NOT_ALLOWED);
+    }
+
     uint8_t requireConfirmation = G_io_apdu_buffer[OFFSET_P1];
     zxerr_t zxerr = app_fill_address();
     if (zxerr != zxerr_ok) {
@@ -154,6 +192,13 @@ __Z_INLINE void handleSignSecp256K1(volatile uint32_t *flags, volatile uint32_t
         THROW(APDU_CODE_OK);
     }
 
+    if ((hdPath[1] == HDPATH_ETH_1_DEFAULT) && !app_mode_expert()) {
+        *flags |= IO_ASYNCH_REPLY;
+        view_custom_error_show(PIC(msg_error1),PIC(msg_error2));
+        THROW(APDU_CODE_DATA_INVALID);
+    }
+
+
     // Put address in output buffer, we will use it to confirm source address
     zxerr_t zxerr = app_fill_address();
     if (zxerr != zxerr_ok) {
@@ -161,12 +206,6 @@ __Z_INLINE void handleSignSecp256K1(volatile uint32_t *flags, volatile uint32_t
         THROW(APDU_CODE_DATA_INVALID);
     }
     parser_tx_obj.own_addr = (const char *) (G_io_apdu_buffer + VIEW_ADDRESS_OFFSET_SECP256K1);
-
-    if ((encoding != BECH32_COSMOS) && !app_mode_expert()) {
-        *flags |= IO_ASYNCH_REPLY;
-        view_custom_error_show(PIC(msg_error1),PIC(msg_error2));
-        THROW(APDU_CODE_DATA_INVALID);
-    }
     const char *error_msg = tx_parse();
 
     if (error_msg != NULL) {
@@ -183,7 +222,7 @@ __Z_INLINE void handleSignSecp256K1(volatile uint32_t *flags, volatile uint32_t
 }
 
 void handleApdu(volatile uint32_t *flags, volatile uint32_t *tx, uint32_t rx) {
-    uint16_t sw = 0;
+    volatile uint16_t sw = 0;
 
     BEGIN_TRY
     {
@@ -235,7 +274,7 @@ void handleApdu(volatile uint32_t *flags, volatile uint32_t *tx, uint32_t rx) {
                     break;
             }
             G_io_apdu_buffer[*tx] = sw >> 8;
-            G_io_apdu_buffer[*tx + 1] = sw;
+            G_io_apdu_buffer[*tx + 1] = sw & 0xFF;
             *tx += 2;
         }
         FINALLY
diff --git a/app/src/common/actions.h b/app/src/common/actions.h
index 37805713..79032a64 100644
--- a/app/src/common/actions.h
+++ b/app/src/common/actions.h
@@ -25,10 +25,6 @@
 
 extern uint16_t action_addrResponseLen;
 
-__Z_INLINE void app_set_hrp(char *p) {
-    crypto_set_hrp(p);
-}
-
 __Z_INLINE void app_sign() {
     uint16_t replyLen = 0;
 
diff --git a/app/src/crypto.c b/app/src/crypto.c
index 7c7d4b15..99379fa9 100644
--- a/app/src/crypto.c
+++ b/app/src/crypto.c
@@ -171,37 +171,12 @@ zxerr_t crypto_sign(uint8_t *signature,
     return err;
 }
 
-uint8_t extractHRP(uint32_t rx, uint32_t offset) {
-    if (rx < offset + 1) {
-        THROW(APDU_CODE_DATA_INVALID);
-    }
-    MEMZERO(bech32_hrp, MAX_BECH32_HRP_LEN);
-
-    bech32_hrp_len = G_io_apdu_buffer[offset];
-
-    if (bech32_hrp_len == 0 || bech32_hrp_len > MAX_BECH32_HRP_LEN) {
-        THROW(APDU_CODE_DATA_INVALID);
-    }
-
-    memcpy(bech32_hrp, G_io_apdu_buffer + offset + 1, bech32_hrp_len);
-    bech32_hrp[bech32_hrp_len] = 0;     // zero terminate
-
-    return bech32_hrp_len;
-}
-
 void ripemd160_32(uint8_t *out, uint8_t *in) {
     cx_ripemd160_t rip160;
     cx_ripemd160_init(&rip160);
     cx_hash(&rip160.header, CX_LAST, in, CX_SHA256_SIZE, out, CX_RIPEMD160_SIZE);
 }
 
-void crypto_set_hrp(char *p) {
-    bech32_hrp_len = strlen(p);
-    if (bech32_hrp_len < MAX_BECH32_HRP_LEN) {
-        snprintf(bech32_hrp, sizeof(bech32_hrp), "%s", p);
-    }
-}
-
 zxerr_t crypto_fillAddress(uint8_t *buffer, uint16_t buffer_len, uint16_t *addrResponseLen) {
     if (buffer_len < PK_LEN_SECP256K1 + 50) {
         return zxerr_buffer_too_small;
diff --git a/app/src/crypto.h b/app/src/crypto.h
index 6a7d319f..12a0ea6e 100644
--- a/app/src/crypto.h
+++ b/app/src/crypto.h
@@ -33,8 +33,6 @@ extern char bech32_hrp[MAX_BECH32_HRP_LEN + 1];
 extern uint8_t bech32_hrp_len;
 extern address_encoding_e encoding;
 
-uint8_t extractHRP(uint32_t rx, uint32_t offset);
-
 void crypto_set_hrp(char *p);
 
 zxerr_t crypto_fillAddress(uint8_t *buffer, uint16_t bufferLen, uint16_t *addrResponseLen);
diff --git a/docs/APDUSPEC.md b/docs/APDUSPEC.md
index 11c71043..4bc751f1 100644
--- a/docs/APDUSPEC.md
+++ b/docs/APDUSPEC.md
@@ -63,7 +63,7 @@ The general structure of commands and responses is as follows:
 
 --------------
 
-### INS_GET_ADDR_SECP256K1
+### INS_GET_ADDR
 
 #### Command
 
@@ -78,7 +78,7 @@ The general structure of commands and responses is as follows:
 | HRP_LEN    | byte(1)        | Bech32 HRP Length              | 1<=HRP_LEN<=83 |
 | HRP        | byte (HRP_LEN) | Bech32 HRP                     |                |
 | Path[0]    | byte (4)       | Derivation Path Data           | 44             |
-| Path[1]    | byte (4)       | Derivation Path Data           | 118            |
+| Path[1]    | byte (4)       | Derivation Path Data           | 118 / 60       |
 | Path[2]    | byte (4)       | Derivation Path Data           | ?              |
 | Path[3]    | byte (4)       | Derivation Path Data           | ?              |
 | Path[4]    | byte (4)       | Derivation Path Data           | ?              |
@@ -93,7 +93,7 @@ First three items in the derivation path will be hardened automatically hardened
 | ADDR    | byte (65) | Bech 32 addr          |                          |
 | SW1-SW2 | byte (2)  | Return code           | see list of return codes |
 
-### SIGN_SECP256K1
+### INS_SIGN
 
 #### Command
 
@@ -107,7 +107,8 @@ First three items in the derivation path will be hardened automatically hardened
 | P2    | byte (1) | ----                   | not used  |
 | L     | byte (1) | Bytes in payload       | (depends) |
 
-The first packet/chunk includes only the derivation path
+The first packet/chunk includes only the derivation path and HRP.
+At the moment, seding HRP is optional but it will be mandatory in a future version.
 
 All other packets/chunks should contain message to sign
 
@@ -115,11 +116,13 @@ All other packets/chunks should contain message to sign
 
 | Field      | Type     | Content                | Expected  |
 | ---------- | -------- | ---------------------- | --------- |
-| Path[0]    | byte (4) | Derivation Path Data   | 44        |
-| Path[1]    | byte (4) | Derivation Path Data   | 118       |
-| Path[2]    | byte (4) | Derivation Path Data   | ?         |
-| Path[3]    | byte (4) | Derivation Path Data   | ?         |
-| Path[4]    | byte (4) | Derivation Path Data   | ?         |
+| Path[0]    | byte (4)       | Derivation Path Data           | 44             |
+| Path[1]    | byte (4)       | Derivation Path Data           | 118 / 60       |
+| Path[2]    | byte (4)       | Derivation Path Data           | ?              |
+| Path[3]    | byte (4)       | Derivation Path Data           | ?              |
+| Path[4]    | byte (4)       | Derivation Path Data           | ?              |
+| HRP_LEN    | byte(1)        | Bech32 HRP Length              | 1<=HRP_LEN<=83 |
+| HRP        | byte (HRP_LEN) | Bech32 HRP                     |                |
 
 *Other Chunks/Packets*
 
diff --git a/tests_zemu/tests/standard.test.ts b/tests_zemu/tests/standard.test.ts
index 29987414..61d1d346 100644
--- a/tests_zemu/tests/standard.test.ts
+++ b/tests_zemu/tests/standard.test.ts
@@ -431,20 +431,17 @@ test.concurrent.each(DEVICE_MODELS)('sign basic normal Eth', async function (m)
 
       const path = [44, 60, 0, 0, 0]
       const tx = Buffer.from(JSON.stringify(example_tx_str_basic), "utf-8")
+      const hrp = 'inj'
 
       // check with invalid HRP
       const errorRespPk = await app.getAddressAndPubKey(path, 'forbiddenHRP')
       expect(errorRespPk.return_code).toEqual(0x6986)
       expect(errorRespPk.error_message).toEqual('Transaction rejected')
 
-      // get address / publickey
-      const respPk = await app.getAddressAndPubKey(path, 'inj')
-      expect(respPk.return_code).toEqual(0x9000)
-      expect(respPk.error_message).toEqual('No errors')
-      console.log(respPk)
-
       // do not wait here..
       const signatureRequest = app.sign(path, tx)
+      // Update JS package before calling this
+      // const signatureRequest = app.sign(path, tx, hrp)
 
       // Wait until we are not in the main menu
       await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot())
@@ -457,6 +454,12 @@ test.concurrent.each(DEVICE_MODELS)('sign basic normal Eth', async function (m)
       expect(resp.error_message).toEqual('No errors')
       expect(resp).toHaveProperty('signature')
 
+      // get address / publickey
+      const respPk = await app.getAddressAndPubKey(path, hrp)
+      expect(respPk.return_code).toEqual(0x9000)
+      expect(respPk.error_message).toEqual('No errors')
+      console.log(respPk)
+
       // Now verify the signature
       const sha3 = require('js-sha3')
       const msgHash = Buffer.from(sha3.keccak256(tx), 'hex')

From 6c888639ddaff55fac30a7838d3076a603ff7e63 Mon Sep 17 00:00:00 2001
From: ftheirs <fernando@zondax.ch>
Date: Thu, 13 Jul 2023 09:48:10 -0300
Subject: [PATCH 2/5] use no-throw methods

---
 app/src/crypto.c | 145 ++++++++++++++++++++++++-----------------------
 1 file changed, 73 insertions(+), 72 deletions(-)

diff --git a/app/src/crypto.c b/app/src/crypto.c
index 99379fa9..23b4a31e 100644
--- a/app/src/crypto.c
+++ b/app/src/crypto.c
@@ -23,6 +23,8 @@
 #include <bech32.h>
 #include "chain_config.h"
 
+#define MAX_DER_SIGNATURE_LEN   73u
+
 uint32_t hdPath[HDPATH_LEN_DEFAULT];
 
 uint8_t bech32_hrp_len;
@@ -31,41 +33,41 @@ address_encoding_e encoding;
 
 #include "cx.h"
 
-zxerr_t crypto_extractUncompressedPublicKey(const uint32_t path[HDPATH_LEN_DEFAULT], uint8_t *pubKey, uint16_t pubKeyLen) {
+static zxerr_t crypto_extractUncompressedPublicKey(uint8_t *pubKey, uint16_t pubKeyLen) {
+    if (pubKey == NULL || pubKeyLen < PK_LEN_SECP256K1_UNCOMPRESSED) {
+        return zxerr_invalid_crypto_settings;
+    }
+
     cx_ecfp_public_key_t cx_publicKey = {0};
     cx_ecfp_private_key_t cx_privateKey = {0};
-    uint8_t privateKeyData[32] = {0};
+    uint8_t privateKeyData[64] = {0};
+
+    zxerr_t error = zxerr_unknown;
+    // Generate keys
+    CATCH_CXERROR(os_derive_bip32_with_seed_no_throw(HDW_NORMAL,
+                                                     CX_CURVE_256K1,
+                                                     hdPath,
+                                                     HDPATH_LEN_DEFAULT,
+                                                     privateKeyData,
+                                                     NULL,
+                                                     NULL,
+                                                     0))
+
+    CATCH_CXERROR(cx_ecfp_init_private_key_no_throw(CX_CURVE_256K1, privateKeyData, 32, &cx_privateKey))
+    CATCH_CXERROR(cx_ecfp_init_public_key_no_throw(CX_CURVE_256K1, NULL, 0, &cx_publicKey))
+    CATCH_CXERROR(cx_ecfp_generate_pair_no_throw(CX_CURVE_256K1, &cx_publicKey, &cx_privateKey, 1))
+    memcpy(pubKey, cx_publicKey.W, PK_LEN_SECP256K1_UNCOMPRESSED);
+    error = zxerr_ok;
 
-    if (pubKeyLen < PK_LEN_SECP256K1_UNCOMPRESSED) {
-        return zxerr_invalid_crypto_settings;
-    }
+catch_cx_error:
+    MEMZERO(&cx_privateKey, sizeof(cx_privateKey));
+    MEMZERO(privateKeyData, sizeof(privateKeyData));
 
-    volatile zxerr_t err = zxerr_unknown;
-    BEGIN_TRY
-    {
-        TRY {
-            os_perso_derive_node_bip32(CX_CURVE_256K1,
-                                       path,
-                                       HDPATH_LEN_DEFAULT,
-                                       privateKeyData, NULL);
-
-            cx_ecfp_init_private_key(CX_CURVE_256K1, privateKeyData, 32, &cx_privateKey);
-            cx_ecfp_init_public_key(CX_CURVE_256K1, NULL, 0, &cx_publicKey);
-            cx_ecfp_generate_pair(CX_CURVE_256K1, &cx_publicKey, &cx_privateKey, 1);
-            err = zxerr_ok;
-        }
-        CATCH_OTHER(e) {
-            err = zxerr_ledger_api_error;
-        }
-        FINALLY {
-            MEMZERO(&cx_privateKey, sizeof(cx_privateKey));
-            MEMZERO(privateKeyData, 32);
-        }
+    if (error != zxerr_ok) {
+        MEMZERO(pubKey, pubKeyLen);
     }
-    END_TRY;
 
-    memcpy(pubKey, cx_publicKey.W, PK_LEN_SECP256K1_UNCOMPRESSED);
-    return err;
+    return error;
 }
 
 __Z_INLINE zxerr_t compressPubkey(const uint8_t *pubkey, uint16_t pubkeyLen, uint8_t *output, uint16_t outputLen) {
@@ -116,9 +118,13 @@ static zxerr_t crypto_hashBuffer(const uint8_t *input, const uint16_t inputLen,
     return zxerr_ok;
 }
 
-zxerr_t crypto_sign(uint8_t *signature,
-                   uint16_t signatureMaxlen,
+zxerr_t crypto_sign(uint8_t *output,
+                   uint16_t outputLen,
                    uint16_t *sigSize) {
+    if (output == NULL || sigSize == NULL || outputLen < MAX_DER_SIGNATURE_LEN) {
+            return zxerr_invalid_crypto_settings;
+    }
+
     uint8_t messageDigest[CX_SHA256_SIZE] = {0};
 
     // Hash it
@@ -129,52 +135,47 @@ zxerr_t crypto_sign(uint8_t *signature,
     CHECK_APP_CANARY()
 
     cx_ecfp_private_key_t cx_privateKey;
-    uint8_t privateKeyData[32];
-    unsigned int info = 0;
-    volatile int signatureLength = 0;
-
-    volatile zxerr_t err = zxerr_unknown;
-    BEGIN_TRY
-    {
-        TRY
-        {
-            // Generate keys
-            os_perso_derive_node_bip32(CX_CURVE_SECP256K1,
-                                       hdPath,
-                                       HDPATH_LEN_DEFAULT,
-                                       privateKeyData, NULL);
-
-            cx_ecfp_init_private_key(CX_CURVE_SECP256K1, privateKeyData, 32, &cx_privateKey);
-
-            // Sign
-            signatureLength = cx_ecdsa_sign(&cx_privateKey,
-                                            CX_RND_RFC6979 | CX_LAST,
-                                            CX_SHA256,
-                                            messageDigest,
-                                            CX_SHA256_SIZE,
-                                            signature,
-                                            signatureMaxlen,
-                                            &info);
-            err = zxerr_ok;
-        }
-        CATCH_OTHER(e) {
-            err = zxerr_ledger_api_error;
-        }
-        FINALLY {
-            MEMZERO(&cx_privateKey, sizeof(cx_privateKey));
-            MEMZERO(privateKeyData, 32);
-        }
+    uint8_t privateKeyData[64] = {0};
+    size_t signatureLength = MAX_DER_SIGNATURE_LEN;
+    uint32_t tmpInfo = 0;
+    *sigSize = 0;
+
+    zxerr_t error = zxerr_unknown;
+
+    CATCH_CXERROR(os_derive_bip32_with_seed_no_throw(HDW_NORMAL,
+                                                     CX_CURVE_256K1,
+                                                     hdPath,
+                                                     HDPATH_LEN_DEFAULT,
+                                                     privateKeyData,
+                                                     NULL,
+                                                     NULL,
+                                                     0))
+    CATCH_CXERROR(cx_ecfp_init_private_key_no_throw(CX_CURVE_256K1, privateKeyData, 32, &cx_privateKey))
+    CATCH_CXERROR(cx_ecdsa_sign_no_throw(&cx_privateKey,
+                                         CX_RND_RFC6979 | CX_LAST,
+                                         CX_SHA256,
+                                         messageDigest,
+                                         CX_SHA256_SIZE,
+                                         output,
+                                         &signatureLength, &tmpInfo))
+    *sigSize = signatureLength;
+    error = zxerr_ok;
+
+catch_cx_error:
+    MEMZERO(&cx_privateKey, sizeof(cx_privateKey));
+    MEMZERO(privateKeyData, sizeof(privateKeyData));
+
+    if (error != zxerr_ok) {
+        MEMZERO(output, outputLen);
     }
-    END_TRY;
 
-    *sigSize = signatureLength;
-    return err;
+    return error;
 }
 
 void ripemd160_32(uint8_t *out, uint8_t *in) {
     cx_ripemd160_t rip160;
     cx_ripemd160_init(&rip160);
-    cx_hash(&rip160.header, CX_LAST, in, CX_SHA256_SIZE, out, CX_RIPEMD160_SIZE);
+    cx_hash_no_throw(&rip160.header, CX_LAST, in, CX_SHA256_SIZE, out, CX_RIPEMD160_SIZE);
 }
 
 zxerr_t crypto_fillAddress(uint8_t *buffer, uint16_t buffer_len, uint16_t *addrResponseLen) {
@@ -184,7 +185,7 @@ zxerr_t crypto_fillAddress(uint8_t *buffer, uint16_t buffer_len, uint16_t *addrR
 
     // extract pubkey
     uint8_t uncompressedPubkey [PK_LEN_SECP256K1_UNCOMPRESSED] = {0};
-    CHECK_ZXERR(crypto_extractUncompressedPublicKey(hdPath, uncompressedPubkey, sizeof(uncompressedPubkey)))
+    CHECK_ZXERR(crypto_extractUncompressedPublicKey(uncompressedPubkey, sizeof(uncompressedPubkey)))
     CHECK_ZXERR(compressPubkey(uncompressedPubkey, sizeof(uncompressedPubkey), buffer, buffer_len))
     char *addr = (char *) (buffer + PK_LEN_SECP256K1);
 
@@ -205,7 +206,7 @@ zxerr_t crypto_fillAddress(uint8_t *buffer, uint16_t buffer_len, uint16_t *addrR
             if (cx_keccak_init_no_throw(&ctx, 256) != CX_OK) {
                 return zxerr_unknown;
             }
-            cx_hash((cx_hash_t *)&ctx, CX_LAST, uncompressedPubkey+1, sizeof(uncompressedPubkey)-1, hashed1_pk, sizeof(hashed1_pk));
+            cx_hash_no_throw((cx_hash_t *)&ctx, CX_LAST, uncompressedPubkey+1, sizeof(uncompressedPubkey)-1, hashed1_pk, sizeof(hashed1_pk));
             CHECK_ZXERR(bech32EncodeFromBytes(addr, buffer_len - PK_LEN_SECP256K1, bech32_hrp, hashed1_pk + 12, sizeof(hashed1_pk) - 12, 1, BECH32_ENCODING_BECH32))
             break;
         }

From 5b601f63472d8091c6c920d79285691578b61771 Mon Sep 17 00:00:00 2001
From: ftheirs <fernando@zondax.ch>
Date: Thu, 13 Jul 2023 09:48:38 -0300
Subject: [PATCH 3/5] use latest SDK and update deps

---
 deps/ledger-zxlib                 |  2 +-
 tests_zemu/package.json           | 26 +++++++++++++-------------
 tests_zemu/tests/standard.test.ts |  4 +---
 3 files changed, 15 insertions(+), 17 deletions(-)

diff --git a/deps/ledger-zxlib b/deps/ledger-zxlib
index bae8872f..37aeeff6 160000
--- a/deps/ledger-zxlib
+++ b/deps/ledger-zxlib
@@ -1 +1 @@
-Subproject commit bae8872fb572e3fb79f34813800c7981d4d01050
+Subproject commit 37aeeff64192e71b5cff0b4295a58b57a4d91fbc
diff --git a/tests_zemu/package.json b/tests_zemu/package.json
index 2354bf91..eb6bd2da 100644
--- a/tests_zemu/package.json
+++ b/tests_zemu/package.json
@@ -18,31 +18,31 @@
     "test": "yarn clean && jest --maxConcurrency 2"
   },
   "dependencies": {
-    "@zondax/zemu": "^0.42.1",
-    "@zondax/ledger-cosmos-js": "^3.0.0"
+    "@zondax/ledger-cosmos-js": "^3.0.3",
+    "@zondax/zemu": "^0.43.1"
   },
   "devDependencies": {
-    "@types/jest": "^29.4.0",
+    "@types/jest": "^29.5.3",
     "@types/ledgerhq__hw-transport": "^4.21.4",
-    "@typescript-eslint/eslint-plugin": "^5.52.0",
-    "@typescript-eslint/parser": "^5.52.0",
+    "@typescript-eslint/eslint-plugin": "^6.0.0",
+    "@typescript-eslint/parser": "^6.0.0",
+    "bech32": "^2.0.0",
     "blakejs": "^1.1.1",
     "crypto-js": "4.1.1",
-    "eslint": "^8.34.0",
+    "eslint": "^8.44.0",
     "eslint-config-prettier": "^8.3.0",
     "eslint-plugin-import": "^2.25.4",
     "eslint-plugin-jest": "^27.2.1",
-    "eslint-plugin-prettier": "^4.0.0",
-    "jest": "29.4.2",
+    "eslint-plugin-prettier": "^5.0.0",
+    "jest": "29.6.1",
     "jest-serial-runner": "^1.1.0",
     "js-sha3": "0.8.0",
     "jssha": "^3.2.0",
-    "prettier": "^2.5.1",
-    "secp256k1": "^4.0.3",
-    "ts-jest": "^29.0.5",
-    "ts-node": "^10.9.1",
     "keccak256": "^1.0.6",
-    "bech32": "^2.0.0",
+    "prettier": "^3.0.0",
+    "secp256k1": "^5.0.0",
+    "ts-jest": "^29.1.1",
+    "ts-node": "^10.9.1",
     "typescript": "^5.0.4"
   }
 }
diff --git a/tests_zemu/tests/standard.test.ts b/tests_zemu/tests/standard.test.ts
index 61d1d346..e36e759e 100644
--- a/tests_zemu/tests/standard.test.ts
+++ b/tests_zemu/tests/standard.test.ts
@@ -439,9 +439,7 @@ test.concurrent.each(DEVICE_MODELS)('sign basic normal Eth', async function (m)
       expect(errorRespPk.error_message).toEqual('Transaction rejected')
 
       // do not wait here..
-      const signatureRequest = app.sign(path, tx)
-      // Update JS package before calling this
-      // const signatureRequest = app.sign(path, tx, hrp)
+      const signatureRequest = app.sign(path, tx, hrp)
 
       // Wait until we are not in the main menu
       await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot())

From 3c76d3240cda33ab1cfbe48238dcb2f2610552cd Mon Sep 17 00:00:00 2001
From: ftheirs <fernando@zondax.ch>
Date: Thu, 13 Jul 2023 09:55:45 -0300
Subject: [PATCH 4/5] update NanoX snapshots

---
 tests_zemu/snapshots/x-ibc_denoms/00001.png     | Bin 652 -> 651 bytes
 tests_zemu/snapshots/x-ibc_denoms/00002.png     | Bin 791 -> 794 bytes
 tests_zemu/snapshots/x-ibc_denoms/00003.png     | Bin 703 -> 701 bytes
 tests_zemu/snapshots/x-ibc_denoms/00004.png     | Bin 654 -> 648 bytes
 tests_zemu/snapshots/x-ibc_denoms/00005.png     | Bin 785 -> 783 bytes
 tests_zemu/snapshots/x-ibc_denoms/00006.png     | Bin 714 -> 712 bytes
 tests_zemu/snapshots/x-mainmenu/00001.png       | Bin 442 -> 440 bytes
 tests_zemu/snapshots/x-mainmenu/00002.png       | Bin 428 -> 426 bytes
 tests_zemu/snapshots/x-mainmenu/00003.png       | Bin 442 -> 440 bytes
 tests_zemu/snapshots/x-mainmenu/00011.png       | Bin 442 -> 440 bytes
 tests_zemu/snapshots/x-show_address/00001.png   | Bin 778 -> 776 bytes
 .../snapshots/x-show_eth_address/00001.png      | Bin 782 -> 782 bytes
 tests_zemu/snapshots/x-sign_basic/00002.png     | Bin 860 -> 859 bytes
 tests_zemu/snapshots/x-sign_basic/00003.png     | Bin 810 -> 805 bytes
 tests_zemu/snapshots/x-sign_basic2/00003.png    | Bin 597 -> 597 bytes
 tests_zemu/snapshots/x-sign_basic2/00004.png    | Bin 918 -> 917 bytes
 tests_zemu/snapshots/x-sign_basic_eth/00003.png | Bin 353 -> 352 bytes
 tests_zemu/snapshots/x-sign_basic_eth/00005.png | Bin 844 -> 845 bytes
 tests_zemu/snapshots/x-sign_basic_eth/00006.png | Bin 860 -> 859 bytes
 tests_zemu/snapshots/x-sign_basic_eth/00007.png | Bin 844 -> 845 bytes
 tests_zemu/snapshots/x-sign_basic_eth/00008.png | Bin 810 -> 805 bytes
 .../x-sign_basic_eth_warning/00000.png          | Bin 535 -> 533 bytes
 .../x-sign_basic_extra_fields/00002.png         | Bin 860 -> 859 bytes
 .../x-sign_basic_extra_fields/00003.png         | Bin 810 -> 805 bytes
 24 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/tests_zemu/snapshots/x-ibc_denoms/00001.png b/tests_zemu/snapshots/x-ibc_denoms/00001.png
index 70772708c3b92cdd6178e23ff35ee876e6396f38..b8f6cdc1f359a3ea848a37be3be8de24b99a0c44 100644
GIT binary patch
delta 626
zcmV-&0*(EQ1&alcB!5y#L_t(|ob8%ha>F1DMQNuy@&1>@Uiy(KL-j(!0-VV`UkL^w
zBrJ@e6aWAK0002C^OYi{*4lnw*OekO+Pm1V_{gZgpP&08&W@+~zSjB>n}$emfJn1T
zGfMMQ@35EENJ$f-m4p<q3+EI_eB;0GH16qj(#GR&_=1#hX@A<^P~_1RD9q5LEiaiM
z;SFdrsGm(e!{DH~iWt<{+&TB>B=iGGiM=@?sP{pNKrY{Sn%*g&>13thCDVPSg`fu4
z#;ISlVZY4uD~;I7qk~arQT!<>pP}N4q%FebZ$gm}Z%ETtJUb@XT9Il|1<rnU0{{R3
z0Dw0jv@x!=8h?+pY7^2v2)_gD%{)(3IFlc?55}novZb<jScPp;hV_RMhH4D=Tzo9z
z=!_GEA$(9d7}-b7!*(5ygisg5`q8en*y4Nxj7TMtlZ?BWkRlSIadUs1_4L@MTMXmm
zq@#!3L?t-S61app1wu?u6p^%SsCW{vS;9L)-vBa^$$u*9TvQFB%d%4qqrP3}*S6st
z@Adzrv$eHaec%M#k7{ICe;b0SVg1d(2PZ)kI?2Gu@WE2Jd2{ZDE+TsNZGYr>wu<{t
z+gDvpoQ7{i{0&nS*nG=js{@AjJNksMW(aW~RHaLK&OPI*MCQ}5PcXF1V#BWHDRicC
zNsp^J9BYE?af+D<ziB3nn44(xaDEM#OMEu^s8ytt>cctjfSUwTU5{j+1GHqMwjPLi
zQ?YQ^oqg-Jul9)x@`sauJspIA0{{R3000000000000000000a51q^GTlqWffQ~&?~
M07*qoM6N<$f?(e)*Z=?k

delta 627
zcmV-(0*w8O1&jrdB!5#$L_t(|ob8%za>O7AhHa-e$^DPyUHW6Ej^#@*sM*=~`PI6L
z2nHgi6aWAK0002C^OYi{*4qBQt}8`mbaruG@h7AIetzzYIJ=(a`&#QmY#JiL0V2&V
z%_z-Jy~AEsBP~sc))G>{Zk$sf@rnPwGq|VMNn4M9;0w~irGIJvh9ZxqKw*X^V|mL2
z2~R-VLH%y(83qT<Rm7mq;m*B3C!t?RO6<)ELA?)B1akStuj!NWolY_hZ<(I!ZV2Lw
z=h`^+iw^A5OrL4QQ63$PK8xZ{NqG$wGm@5s%io3~A>NRtWjs43*jkZpQ3cMvb^`za
z004kDAapRUwSO8vY27BIeGq;J*oS#usBjiPY#)qE5#&f^pRfu$qzwBHB@ERVp1Js1
z#MK!$3Pbp!axkionuqN^9toi-hW(>cYq7=o1Q?M@B&Qg6vmiwzMC0cEIP00QFSi)R
z$tgz<r-@2%-X(Aea|(o*-Y6nz7c$~az-9^W2z>&`Mt>$*)R|NbqG{QwhSA?{^lRI2
zuJ`(X)7i#aqdss0?ngB;tiKJx)Uf_$;DeJO3Y}zNWcXky+`Kv8hAtv{_iexAd5((v
zZ`)UWnm7$Vi1-JlD6sh}hpi46e&5j-gf&Bm=b$Qml;=D%t}0|c4f_T|t1LF`Zk|SG
zDVNN+nry=%$X=&dnedxt!ic$rHV@}>z+B<8(MPQ!l~f<jc?aAiQ0jUl`y8MZBei@W
z)=kC6;dJ&_w|%!yOvoQj+Jy|50}cQH0000000000000000000i<QEe|qbsmq=6V1C
N002ovPDHLkV1gUXAiV$p

diff --git a/tests_zemu/snapshots/x-ibc_denoms/00002.png b/tests_zemu/snapshots/x-ibc_denoms/00002.png
index 46ba819805d4634373fd39a7ed5ef4f6a9aef539..1009a3c210f8cd5f18e270b0b5b43285aa50db29 100644
GIT binary patch
delta 770
zcmV+d1O5D$2AT$tB!A&aL_t(|ob8)imct+jhBI?!C)xj!+{--VjK^{lkR(m#|DIZl
zfRYj=X4?P&00000xSX$Oht^vEyzhIdGc~3Uv9xckwXrYPHnwz^x&Y}u<tOUgcKN(V
zO|Q5&#+ZL4Cb~<lwQ=4<F^B~~M7#>RXQR8kMH~{*mbOleMt`k{vtOP7z7u^$C$tIm
zcRV019&JwR+V$8CiP}T~4}RwlVgVpm88<UEe2mKIc>J9`&Lpf8;gI~sB4jlB38$bw
zeNpfI`p-~HOjJ3)t|ya%I()L6)0gg8r6iYLG!rWqO)LQ8-}bOd(l-${JnJ31PTpe6
z+t#O}FidE@w11XS+l>pwPatt)DA(}cSr0&!CjbBd!27{h8d!T=2j7R2HTbhw+6mvn
zhwX8m7l01~0k|0i;ARkjH{&S_iH9yjCr&<M3{OX$WX%3$2vd#OzZk^ePLPG}1oz=P
z;nV9n8`>YQ+t1l~7wy>E*vMrz^U-#DJp?%Z#Lt_E$A9I-7TZ<7q}{km;gKo(kbxm1
z)<MM<L!oU#{K+rL{WNgxgvqG1a{Srp%m4p-2b`{EPR1P{5_zf9W=FuMU2I9>>II~Y
z7Mzaeu7pl#ZLcSpdl$bsqQ`kmTr?5A$q~~D>H|PX$75qjcKkY?VNQ4@MmjzFE1VmE
zDo07aI)5X#l+V6XEF1uy?8xFzJiX1^4S~fZ&T|WSF+?-rTwi*8-v3^kSs4fb0002M
z2Q#mR8uiPuQIy>D6`QBHD6afOH~2cwSu`~kmwx^B*q7FzVu?*F6Z%V@S{XoVu`7Lv
zqG`@~Lw{(bBlBu#?It3vE%XlFsT&_rfBKcp;(Jm=)wb6E=jEv&R5T6kZ$tW>R0hEF
z*h@n!E*6efE1L4Uo}K#3IlUU{AwALJov^TI%FSu|)64^KOG?d&on16F^ry{D0-#m(
zoGVUVh7{4(e?(7Vanb3j(;{l0000000N`Q#0x8x_a2q;C9smFU07*qoM6N<$f)o67
A4FCWD

delta 752
zcmV<M0uTL~2A2kqB!AvXL_t(|ob8)!va2u%hI8(mopk?8%3kgdXEG^Y0Yp=K-se}F
z5<sXiBDMwq00000!0r4*C-mOO=hy31>P(I4LoDrE?|q)jwap{Lr6EA3FZqo+*KUt{
z)bttm<{a~{#Kdr^_ddrxl!I6TM8to=@N9OMkBEmvw56>RqkmB=V)V-wfPaZOvlCiC
z{Syz!h)0{#y7qq@hD2?mfCs<x2eAZ@e;GHkG<+PDG4VK^J<cSo6XB42V;M3A{e;f|
zl7n(y6IbYO(iJt$`5*)mz>V=3Iir@ISfwPLU~M%^s5%HFU|jBJt7Q3}<?YSDm^gIu
z5nJB2ZorLlZGYk{ZDe+7<3{ltNL(1oHT-q9UljlV0DupM?=-OYxDQ?hA$#y=ktxRQ
z<;(7Io|k|x0}0p+60jL0;KO*zM&hB{(1nwaIEJUA1{u-64I$Ks{>>l<JHaZn6I_RP
z!o%z84IPiy?dR-#iq^I^4|17iKHBc@O@Q-HyyHl0mwyvSY*+n~_TX6xTc+$L14Blv
zgNh@DLfeG+lV6hiY2dmOCP$@}<F8)6{O8{%;B+<IoXdNF6LIOQ7Vza1TavhX18JiL
z-O=2YP={7~?_?fR{N{)rXPdZaB6^V{rW4dBfRN5dV~gzkb?#wKcqL{!9sM(0n}8}u
z$$E9g+J90WeWzGB0erC|n?JF8n~xg;Cl_(Pw!Ge74AD$D_m>`@#Xed900000Fj!YZ
zjr!$0C`vYc$L1+6YH!nVH~2o!Su`~^mwx^Bv7g$5iX}F!Oz1CpYGnXz#IE!uil#Z|
z4gH}bomp2yYi}ab+CuN(U3%jq>QBG2SzL;!x=*e3pS*l22o+63_qQSaPAU`NdF-Vj
z78eVTRx6tFx}LrCmvebF)I&PZ;+3$lXv)oL`qQivuw_ZjiCtYZHT0*=EfSzr^_)9S
iUWOFW_LK1f6cq<!!cTj5M(v0I0000<MNUMnLSTYEv2Sz$

diff --git a/tests_zemu/snapshots/x-ibc_denoms/00003.png b/tests_zemu/snapshots/x-ibc_denoms/00003.png
index e42e6ee7d57f39c0f63b2191fa35efe6e6181891..da1b3f2b6d87145d0c845fd1625ae87b52048135 100644
GIT binary patch
delta 677
zcmV;W0$TmQ1-%83B!7fSL_t(|ob8%ha^)ZlL~o{MC*J>(*vovlhNASM1u{-jeZFo8
zQY!+>ijvQV5JCtcgplKWrFOU0`seGqs)H$zzPByM)>`YfT~T-&CG?)rLouzjF$*U-
zBR#70&ssX(lMVIne$e*^adEEe5;sM!bSK`*j=B)ds(9ZjuYUo5vIb)WUP5uh8?l0T
z1J%8P(1lEIJK*u(Bo08_GOaOHy?^Y$5PyCb)WzoP8S5{DMVwp->gju^A|H6Mn>WA&
zKcOAcC8(p51*UJ=u*!+9Ke&)r&_HjRL>p?pf4tY==l@+3B|h*Lzu!{oLNtE)3kkD`
z3nw}xE&3r@N`IQ&7n}9pK*<4=L_!E5<o7dgLy>0792~|yVs=HVn~Kvm(c274gSM3;
zqj++#^DXa#m>Pjo2h-NG3N}yYB8Y7q>d5+U!cS2Cd*&twq<6>B0cKtL5zeddX0apC
z0mN0<)5{KKQ+Ne^oPT(Do5AVZvaJbp0Ny}K)WLTzV}EuWEmrVUg0^5nYD&<f*$17c
zE+e?vl-|GfBeD%O8!WTs@<Q2cI<?}o4fSI78t8a)Af2@}XS&g4;vne&Zjzb(V;HGs
z_7B4|coSBkH<=`vXYeRGy*2+EI&D>h&edzHr-piu4ot^39b0Bsf>7&O8$-q(%u(Xn
zoYj;Ahku~UD+?3Qk?%DPtwleV-*9r59z}o;+S>D2=p3Jpq{?IbH>k$}A4acS;Lq~Z
zP^gT=F~mZif80a1izyh!fs)9S2{hE0Ex?$;Gxu~ssNevQ>ENT;4?<e@u)vzo);mB*
z_LcZQDe+F!+*V$E5&vtU5<&<egb+dqA%qY@2p%DX5JCtc<VF4gWPx7mE=Nzm00000
LNkvXXu0mjf1(Qii

delta 679
zcmV;Y0$BaM1-}K5B!7lUL_t(|ob8%ja^xTkguSV~iSK_T?ve*rT&(_RfsAKU{XIDh
zs1;#jr8CDt2qA<JLdbUhq-M9)?(6eBtCJ~^zNSs*)>^yQ-ijhxFQMo35sGQ8^;Ou(
z9_e1?zSh$5oNTIp*OR_3#Eo;Fr?^w}$Q{HRSy30FSrzZ2@_#enE4!f2z$+-e@Is6r
z(Li<YK)8j>Xe;3PUnDj_++|v0sCxa{!9x7`olqB(vwN(63<hy>Pk??w)pB+`5&!tN
zQt@wr@6Zb9252Q+Bd}`I3#)>pHdxH`4m2>DCeenP?;r0qc>KJF#StGwi{Ec4bs-wR
z{Dp*hh>IXPC4Vh?kSrz5?u*U(Z=hrYN-`mY5c2yOx1mV0Wg3TZkC+|N>ZanbP4p&%
z(%{-k%P4jZRzC7Bglh!44(3{KRWNzziy&*`RD059+@qBLow>*c=~X*Az&w}!i{Mpw
zUThDv0r4s9>1B=C6yAZ}`yU?OWYB$^UTXqvfM-aFbARyNn=xxgixIq(;99UCHAm2+
z)dz#8ZbopjDP8Ny%Qn<(u*{arOJ%X?)QZD4)XUjxpySDbbat)j=|(pbjie2@MP~K4
zVU(KH-wgNQO?V2u$)L#GgGbTjt@&=~uvHB@SFf!eF4S{$Vmh~>ZJ8YjQmtpshKwVa
zR^pt`YJbXsCg}9Ygag|1S#D@8`nmi-=PqqUfDhW-^H>-hcSlmkWBfm;#{nNk@3_F9
z<>5l1(i7(p3wiPJ2-z;Cz>EVW5tj*Es4-iBzJh!1(+Q!14M5z%N2?#CG#z1rIiaO@
zfRMaL;%`#oov1mj{P0EM&!tKTA%qY@2qA<JLLdksgb+dqA%u_@`37qIU?enZ>}CJ}
N002ovPDHLkV1k<%R{#J2

diff --git a/tests_zemu/snapshots/x-ibc_denoms/00004.png b/tests_zemu/snapshots/x-ibc_denoms/00004.png
index 193745886a002b371b512841dfc6b877b0187559..58eed79e93f79d444c34e1038c2df1bfad152a80 100644
GIT binary patch
delta 623
zcmV-#0+9WV1&9TZB!5pyL_t(|ob8)ia>XDBhHdBU#QiVHz4Re74o48tfVuSl9y*Oh
zR8)wVrUU>00002Mc77t1mQv_r&e>hLs8jrtB7X;d<5cIIk6}0SF{G5zt5VBnb>5cG
z=Ju%J`1ItQ8xtE>t~ejOu#{4p5L-8vI1;!6ICbRWz>dN?!hc%QROgRVo`)*2^hYUi
zVc!nWy@!3hH^wrq{WT4=KS8l%w+l*a42|0vj?mrv5BoFQ!zuQ;Af?}y-Ca#Ug?r|(
z?<8Y?g8Wa~{~BrxaTX7t$5N%O+5UtEVE_OC008h#rjE*%JfKo>Ay;_8N%*$VRNX?w
zwMNGiK#!pOQGXFg-^co%{7}QN8^co=AB#9T<&L3OqS&1ebA?_4lKws=W6?0x#87^=
zX;Dm<ECfqMijNCApQ54~W}U$1%Nen`wX3J(l8kHeg)SOqlV5SkvgqdAvY{vEz(vCo
zX<bm`OqwWa45|vVVcFOXMP4to_m<LY&XQEuWd7j-+<#Bk$guu41XIKMo537h3B1si
z42+C92!)$B<Wl}TUSEHRFStF;C*QE&gOU?Iqw|b#oMVXkE~tEy`nj;i+|3HrQ)6Ov
zeg5?P;CoohgDS%Or@gw~v?9!Fx%2o78D+;D)LcdH6T~L<BI=Bb0f7@>Opi43bYTwb
za(lU3DrnUDf#`8;=zn{@rB{WAnVv#R4A>bS!goL#T@yMsp=3!dt5_6%<eR9nelO=%
zok^SjLk4i7PQrAd-DLAV(wP7N000000000000000008iC{s3Z4!?A9U#})tp002ov
JPDHLkV1is7F^vEK

delta 613
zcmV-r0-F7Z1&#%fB!5*&L_t(|ob8)!a>O7AhHYnW;{A{0UHW5Z99EEzL`<@MpC6sB
zML<-HWLpXV000000NeS=P}*9fA8W14m5VyXKPmEe;5Scot@S<ZVLnV+YqKuBJ*xAz
zyf)jTf#cItYaK%DT)E<W@W$3!Hz8Vgwk#xZ2XOkx#euyW`+o>~%g~*F3}qgw#N&_B
zvV?s*K+hij^*#j4x%Q7~p#CJCCA(8lVPhE5jyb~R+28ah>S2g|DM<0#v%7l;sPHTt
z{+;CXCn^7w{g0u}BaVifw#;&Zu4E94`jdJH0{{R30D$i#bXE4$0hNviYK0fvgl`Ki
z)g9<~%&0v9!+)J<c17X><?~u^Ub1EyOgGG17$1u`I^`Y1tVM}CALbEe1xWgPNXDZf
zWWtn>nij=$$wu&Wq^wCn=Sx&nLo^9&emNtWJND|SEGfnf^};0@qQ$SgVp+DiW!2D=
zbFf6i6B$#`kW7YC)On~XM2}^s8;ZQ%==YW~Gv_I)YkxBTZ~^XT8e~L&8$zfN{mozw
zt^`@=N{k?54pQOaO?fGQo>kxe5Fe2h<tHDqzXYWwd`9O<`J~*C^}V3>NtxHehHwwd
zQ!kB)-Oc&aON3v-u{x+C%zyg3n_{}WXloUZe<7pnm^Zyv!IQXHLJ;Lwok^U;32>H2
z26?(F%|*UESQ%l;i+&>dA!a7uS<;ww;m1tKy5ep2@sPd)iuIasp$Vl*>RiIJ$JUUN
z>rvM49k`W0TmM4_aI$W~bd}v_=RPl!Ujh{rfOx~P`U5xs00000NkvXXu0mjfEAA~b

diff --git a/tests_zemu/snapshots/x-ibc_denoms/00005.png b/tests_zemu/snapshots/x-ibc_denoms/00005.png
index e234dbb03c6b0a86ef767f8cf7252c376eb4f0e4..b5ec39f8874c07b99d64c08eb465edf89bf6469d 100644
GIT binary patch
delta 759
zcmV<T0to$)29E}iB!AXPL_t(|ob8)!a>O7AhHa-e$^DPyUHT(44kI5TVzRdH^Q&tW
zK@1YsEd>Ao0001h$N5?uUu&fwuj^VAC`vZO-rd6U)>`RUE{(P{m0E{xc!2Mf!Hw&>
zIu)JNTE!vF>?V0Qb%1VaO?he>H*?nHj-QpmHhc?rE$yR!7k`U;kjkfG#YsKd8YZNZ
z^8|3{7B0+^yRn(%+{M}+?D~kJ_!OPjV^31-xu<M#0NvVLIW6osWg0E^@IZJhY~wE;
zIh<Wjz|BP{(&6?1oAQDzwm87BIecdFQGPjzlTOX+VPhIPJcMaCZk5ql8{YobPK#kY
z5hWOwrbndzMStux%9ZfnS$9B|CIA2czzOi&1KG%P+zTz%BTw|f-crO4{@7d3c@Fqv
zzyU7<2fPd%@L`;iNF17m4wO8?hSO0O8LR&o!ct@P9|k^n6GWjm!8!aUe0g18%D3B2
z{;QDUCACfi?ZRa-zwD+u@Gr`>O9J+#Pf-n9lx>vOxPOZC`S4t#GFpu4W|!~VVhw@z
z6ym@9J-MC+t~cS%Dy<y9JAC<{zfZua>h$GYelt6;E_HM%d^p7J*{S*f;YssvNAr~$
zt{r!z|6$^x)_HkfoMQHn>!uE{@p}4A*dK)jS^AOQY7S^6dOE!NE9`YZmZDv}+7VmQ
zSKrxf+J6B&*mcRDc>j{O8yyydIFBv-uBVavirxG@TNtES$w9dT00000z%z`ip+^0Z
zHi|uqp0Rm~i-8|J(f*#IsgYdz<=eI|<)C7TO)C@nOP*R8Kx?rpeSxBBOnF28l%<q$
zH8l4nA}q~6aCgyElpp>PXL2bb>$TSZ@bXYFRd6(&dcU2L?<CU!p0B+$#NuM2wOY}X
z*Y)hspU(DbsE6=Eizi`X(Uec8$qzGjz$+m&)@^su)Q}&ZZr}i|s^`o&c^Ohf%l|q#
piN!^ys?Hfv`vd?00001o@e9Vi9SDDdHBJBk002ovPDHLkV1m)9c}xHR

delta 761
zcmV<V0tWq$29XAkB!AdRL_t(|ob8)ilI$P|hMiNhlk9&<?&UnB%A&Z5s7c%Ne{ZoB
zQM?dBmjVC)0002M<NQpvueH+0>$)Zds*)YCceQlCwN~0zN~0xBrB;D8Pw;Q1apSr!
zrecs<tJ<UuyGibLoq%<1DNlzchdDZA#_vpHAGw5CNqda1Vt;iFQu$P@+G#{vX9&w#
zvjZe_2^TSvyRZ!@xQeYc$m*z~WEafpxt)~T_mnLLpi5gSXB|61nNEq{JaIf0vG6Ca
z9LcU7aB~rgcDX&k!cKSSyu|>{0!iPQvQ=Ep!cK?!jj+)T?OwvHn!4G$mF30I?&0nw
z>^Pm)PwI#^-G9&DPwqBaE8(y6fwuwx008j8NZ$kA$aCBit;Qoyw87p`#16jft>-)g
zd>Jsn%fJ9H0|R^*r#KRax}hB<j~K)0n3Igze+*@+G5Ze#8@vflp*O)j{3ddGLm%Z^
zwo^P6QcY508dwRJ#r@b#b&wy*tt0_I=~Gq17v&GiDu0|MxIZFER8EN#-DLj0FV+$0
zccK0iuPOC(2)zljQCZ>m-N#pa|9t{MRfm&vWoC9_UTQBXyxYXD$y9xSbf@dHqvcF>
z=S~_jzM14v8%*9;yBNLXSl0<Qrl;Se?NP)bOCM=gb3!ZC(&^csVXpyJDay{P9cRn(
z*$-A5Hh+LT?3nXsrFdG}I9^?DqUG5lb3Gm3SFIMW*^WW#l^o<d0000006arK8tTL^
zX`x!P*dALXxS06E6RjT!nmW#9T)sc{DIZh~u~}ilc*xTV16U<~q%RRP%_;B59~vp8
z9}Qjm5|Ne`Z@4>Xs>)CQiF0u%V%2MHeDlhqU~(vEI`n=!BtOVX14KT1S*XFqg`>5C
zrZTSQAN|YO9u19<o@n(ZTo^Q!-C6R}^bPRJk(#TvJ80_2Pj}ZbfECpXdYm#0sbcwm
rOwPjKVo=p!kBEH&00000fW!C??(H9+RpNMd00000NkvXXu0mjf83S$P

diff --git a/tests_zemu/snapshots/x-ibc_denoms/00006.png b/tests_zemu/snapshots/x-ibc_denoms/00006.png
index a198024565810bf9eb4554b6fc24784af010aeca..5d38a7e5381d7594cc28bcbf661c3c05b6fa5254 100644
GIT binary patch
delta 688
zcmV;h0#E(Q1;_=EB!7=dL_t(|ob8%hj_e=|L~}>8lk9&<>}5V8Az!dfVGL=h>wI<7
zegz2eROY$}A%qY@2szHb73Wfl{CeN_S}}TLC+uSu&Ra^UzBOYLO{VB=WP}($E6%l=
zraq8Tit19YxketQ4j@yjvn;bXHnUgV@Vnyd&~M>pq<+PBv46S&WqcV{O=?B9egfTB
zNVo%f<QBfV%XkLs^?<wB-=x(>4b`VuJiBCMryhj-1&~|2ugp4jz?ja6?~d3vtD-Ja
z*2-13+yM`_;QGJl#dCA22G9~;p<MD8z&~nZd#Crp<4h%OEUg0#jE1nQ4IMs&rCEPT
zj<MxlKU+@=q<_DxmVIIB#ipM~UqtL_v?Iv(lCl6Pl@LM*`9{WVDAInZQlj5A&W`li
z)r`Z&(J}^8gT9#}k|P5w{$zb<v_?>eP<<^g$Jm!rKwrO9$wnz6z=6L!r#O&$mmGcB
zuQ)zGcoxX(8fXFhQ`pM4F4a0%2l}HT_?K-NgL+)pSAPXs08653&cSy#<E%j4jNnrV
z`hpXZa|CUjeK7dcW(1AZ)a$!m(zc;$gQd1yRw;{3XP<G{hFUdS4YY6Uq@MLvRbFp1
zQCd2HImw*;V<=P2**^@|;7xc6y~$vbxdvP5r+4n9{H!{7b&ccj4SN$GX?dqq&!KEN
zJK~g@Pk&5?^dqQJVoYaM(}5yrcqE{JN<K>s&85FDKTx@wmLk9#Ep|U92FKNrspHXq
z2elpWX0(nA{9Yb9Hd!Qo4SpgkJ|1DVi%AgUz?6u}1UmMpEr6WCGy61<C}9B*b#UwK
zJ0*o91c)VCdImHp>xloqm3Swrnx!AUNc>o-geee02qA<JLI@#*5JCtcgb+dqd67Q?
WASW!11~jDr0000<MNUMnLSTZyd_rpg

delta 690
zcmV;j0!{tM1<D1GB!7`fL_t(|ob8%hjw>MyMEj0rC%ykAv6uO13HgF;3S;O<sq>W(
zY|}i9Q^|D^LI@#*5OSP<E5@Z1`S!l=wZZ6~9k)-naNJT#wXG2wZ!$#RM|z0yvtnFF
z(~J+Kl%kr{XRe-yp##X!>MYABPM_JQZung>cIdZo(^B8!yMI{SfYQHos|K|^TOWbu
zD<qtN9=V0D?lGRm`aIw+_BUzmqq^!tEaooh*%=Q){sPFY-H*&lJD^Xe#WzR#H>;v9
zQr5~<ww!>6TX6k9=*7G_H3l#!zCyX=FMywFV|%B!!u?DIZF*V>4fKYvs|+1p!c8~z
zqz^my7el>=hkuu_bEz~=oQF-%NMA(kHrnCjdr4V<l#viZ2>C|FWhhd9snw)kHO{v5
z(bb5<!qMssh6ZgjMI=WCSp3L((P)jJ4x!pwR!(PMN&#*Cp-MJN5djW-^PJ*9=v{L3
zWq-^4eCJtM>Z}A>06z;`@z$kU2P>gJDuVymR%cL;3xC_HKnq|=R81aycQeik)J+RM
zm7py+Avq~%>+FNhr#2(lSq;6u>m_X&suoz5ROwe;v7)n&I4nc0F<S++-`NR0Yuhj0
zU^7u#I)FLJoc&`cQ_a~w4A<aIn1$YCFv(nlt@P77_oMu*I(T)3<M0>u#y?W>PN|+l
z*>bkU8GmX%F&WbLph}4`omCA7ilE_^fC4J{EHyNj{#<^bayKnSfCnvh9uuA8>c~`j
z9R8zeFW_Oc(gl8&hlWiQi9ZHEkmVouFk8hWh;d*@L}daEd(;v@&fuAS8VHoI0Ejxc
zb@rVhg*^m_1zNfTnvk`{|8FH;iK^YwlP}^wHY-#@2qA<JLI@#*5JCtcgb+dqA%wih
YA2Jmw!=eds`2YX_07*qoM6N<$f)n;eS^xk5

diff --git a/tests_zemu/snapshots/x-mainmenu/00001.png b/tests_zemu/snapshots/x-mainmenu/00001.png
index e10e0049c4e39446eb67baea703f77a107925640..8472e5d9cda5ebb93b4d7b4e7b9096cc96903486 100644
GIT binary patch
delta 266
zcmV+l0rmd61Goc_Bp`oDL_t(|obB1su7e;9fML#Z-h}smB;I8g%Sc0Ob<B}Oav*~-
zL|8Nhz1~OvC6do+KJzzkpRRDLTXo96Z{4wC3YwADD1YX;so7jh&8m*XFlVQ>(ACCl
zZgGnlY(Db(zPM)sirLkdbi{2FQ1ay9o)XPMH<W7~zMJgbyR{2Fa?9?;>0+T4ZNxs6
zVJEysilYc~r#5Vn^p43t<J6U#r>(Ge#k+HnS-`p7FMpvFBfuvQmM6L_LoYkBCqN(W
ze|iv<d^<Twx(E;S=dhn~{Rr?o_sA0JEW-N3<PYZ(00000000000000;PyV?(nB!>r
QWdHyG07*qoM6N<$g5@`WIRF3v

delta 268
zcmV+n0rUR21G)o{Bp`uFL_t(|obB1su7e;9fML#Z-h}smB;I8g%Sc0OWzLaAav;eV
zA}pGMUhkv-63OQ@pZS}&Pgl6rtvco3x9(Um1s##rD1T;IW<DNsEj8bXnHY}QsV#K1
zF`HZ5Vg{R!yuL5)nSf$;^(7r~+XR$6Ik=}pv(OFYT8Hl@d-rbbLT7H-y?D4-s6`vG
zPi5E%uaV*?!rZA1TO_?>^3OPR<>qNC>|OEhTx1q-ZuiSyD8&fy$%EwsU6!Gj9oZA0
z5BEPkqdiZ)oFrX@2l{i^&$xaB_?<hmggT3`{xJE&xdZ?J00000000000MZjraXv3O
S=4HhI0000<MNUMnLSTXkFn!4Y

diff --git a/tests_zemu/snapshots/x-mainmenu/00002.png b/tests_zemu/snapshots/x-mainmenu/00002.png
index 7e236da60aac4c243bde35b1f1e6e89b08667b7e..f7921677d5901e0643eee20ad7687d502fcbf98f 100644
GIT binary patch
delta 400
zcmV;B0dM}S1F8d%B!6*9L_t(|obB0Rj)Nc&hGDwdn{fXl&0Y3Kvy{Lmwd&xcyw5LV
z5e5)Q$CLm700000000000Dy~!N2O*~u5->FO<e97^ZaOk{i^os%w2=!!EpkLvLJHK
z^19q<%9opF)|c<6p)S_6)ko5YCu6Q-NDj09b8U4sGusNfzJJsFS{|vpoz&QsGR@=l
zoXMK|YInxqVbT`#d>_XzQQc43=QD3#U*XoU_EUbo^??~%&;b$l_c<{*Zb3D<{2Ovh
zxr*EdWpjfC>aiEK6L4W0CF1e&mn+@=$(oOC&GIajRqcu4m^Zb#o;I?%$t^~(+2#3T
zvE~FMIn=id#DB6AkmAh2ngZ=Y3yO6Pujbo^_iY;I(`V<K^hXR^qNF04T$}u&Fup1O
z!449lc<J+B<HX#!*q#en?JdHsfRkm;KQdXA3D}v2`!ov_A*(vZA$+qCD?olelm_R4
uOgJ~c_TM!D0000000000006+Z`U3+LDrzg1-M;_;00{s|MNUMnLSTXk2gP#$

delta 402
zcmV;D0d4-O1FQp(B!6>BL_t(|obB0BZo?oDMNwLHC+vSo?4=)3DT3z-i9L7}?)kDD
z3<DTY#wh^+0000000000000+X9+j3->UGZ9qlwEsVqPEZk6+b(ow;kUJUC83RTo6g
zSzgyWUHN*mlrokdr=cy@wKYaEh9_fgV@M9O{(WtAty0QS(0}cn?$`QA+wG*ru9oQ@
zZ|6+bJXSjygNH?1(BplyU!u03vd?GUzOlliVI8OZeCvi4ThJRK?C)!0aNL4ga`|`U
zmU0!j4a(+>1?sUE^%HPm8#Q8k`OB4F{>Yl!GV}4svsAtlGcmm9No}sDjcjglixC`l
zdHq=IIRQxy^?xk`vF!w;ICHS4K)cX}Vx7ag`LyAEn#Otc+4UCv5yO!vsfaGuCch}y
zH|0NABO!`^WB$ud%-O|eE@ZX02)6=GmO1~(Vo@ewG7a}?f<8i4)y5%wvk)slem<0p
w^FSt?yI;reng9R*0000000000;8XnqQ@t$#Ev@g}01E&B07*qoM6N<$f{!-4NB{r;

diff --git a/tests_zemu/snapshots/x-mainmenu/00003.png b/tests_zemu/snapshots/x-mainmenu/00003.png
index e10e0049c4e39446eb67baea703f77a107925640..8472e5d9cda5ebb93b4d7b4e7b9096cc96903486 100644
GIT binary patch
delta 266
zcmV+l0rmd61Goc_Bp`oDL_t(|obB1su7e;9fML#Z-h}smB;I8g%Sc0Ob<B}Oav*~-
zL|8Nhz1~OvC6do+KJzzkpRRDLTXo96Z{4wC3YwADD1YX;so7jh&8m*XFlVQ>(ACCl
zZgGnlY(Db(zPM)sirLkdbi{2FQ1ay9o)XPMH<W7~zMJgbyR{2Fa?9?;>0+T4ZNxs6
zVJEysilYc~r#5Vn^p43t<J6U#r>(Ge#k+HnS-`p7FMpvFBfuvQmM6L_LoYkBCqN(W
ze|iv<d^<Twx(E;S=dhn~{Rr?o_sA0JEW-N3<PYZ(00000000000000;PyV?(nB!>r
QWdHyG07*qoM6N<$g5@`WIRF3v

delta 268
zcmV+n0rUR21G)o{Bp`uFL_t(|obB1su7e;9fML#Z-h}smB;I8g%Sc0OWzLaAav;eV
zA}pGMUhkv-63OQ@pZS}&Pgl6rtvco3x9(Um1s##rD1T;IW<DNsEj8bXnHY}QsV#K1
zF`HZ5Vg{R!yuL5)nSf$;^(7r~+XR$6Ik=}pv(OFYT8Hl@d-rbbLT7H-y?D4-s6`vG
zPi5E%uaV*?!rZA1TO_?>^3OPR<>qNC>|OEhTx1q-ZuiSyD8&fy$%EwsU6!Gj9oZA0
z5BEPkqdiZ)oFrX@2l{i^&$xaB_?<hmggT3`{xJE&xdZ?J00000000000MZjraXv3O
S=4HhI0000<MNUMnLSTXkFn!4Y

diff --git a/tests_zemu/snapshots/x-mainmenu/00011.png b/tests_zemu/snapshots/x-mainmenu/00011.png
index e10e0049c4e39446eb67baea703f77a107925640..8472e5d9cda5ebb93b4d7b4e7b9096cc96903486 100644
GIT binary patch
delta 266
zcmV+l0rmd61Goc_Bp`oDL_t(|obB1su7e;9fML#Z-h}smB;I8g%Sc0Ob<B}Oav*~-
zL|8Nhz1~OvC6do+KJzzkpRRDLTXo96Z{4wC3YwADD1YX;so7jh&8m*XFlVQ>(ACCl
zZgGnlY(Db(zPM)sirLkdbi{2FQ1ay9o)XPMH<W7~zMJgbyR{2Fa?9?;>0+T4ZNxs6
zVJEysilYc~r#5Vn^p43t<J6U#r>(Ge#k+HnS-`p7FMpvFBfuvQmM6L_LoYkBCqN(W
ze|iv<d^<Twx(E;S=dhn~{Rr?o_sA0JEW-N3<PYZ(00000000000000;PyV?(nB!>r
QWdHyG07*qoM6N<$g5@`WIRF3v

delta 268
zcmV+n0rUR21G)o{Bp`uFL_t(|obB1su7e;9fML#Z-h}smB;I8g%Sc0OWzLaAav;eV
zA}pGMUhkv-63OQ@pZS}&Pgl6rtvco3x9(Um1s##rD1T;IW<DNsEj8bXnHY}QsV#K1
zF`HZ5Vg{R!yuL5)nSf$;^(7r~+XR$6Ik=}pv(OFYT8Hl@d-rbbLT7H-y?D4-s6`vG
zPi5E%uaV*?!rZA1TO_?>^3OPR<>qNC>|OEhTx1q-ZuiSyD8&fy$%EwsU6!Gj9oZA0
z5BEPkqdiZ)oFrX@2l{i^&$xaB_?<hmggT3`{xJE&xdZ?J00000000000MZjraXv3O
S=4HhI0000<MNUMnLSTXkFn!4Y

diff --git a/tests_zemu/snapshots/x-show_address/00001.png b/tests_zemu/snapshots/x-show_address/00001.png
index 4a1aa7e152dcda3928c71f553bc6c72a2fd26c9f..79a820658a49726a550d4d2b2e9a7a531a40757f 100644
GIT binary patch
delta 752
zcmV<M0uTL)28afbB!ACIL_t(|ob8)Qa)dApMV(Y`;`<+oyJSIyBAPvbO!MEOi*^fn
zw(JjG3IG5A0002*WZSlF+u}bN_K)K`y8z{A%8zN&CVsLDpd$8%I2&rMdwQ*v*u+z^
zNS*<tLCI_&O(P}}Cx?yL(Bxj8az9JV0Mb~&vES$6+~Qh~-hWAc3@8@_)q0|Mjh-8O
zGCSa?`FSbW*K}?i8K;KLn(I#~<ts67drc7Iq!v!K5xss81^@s60065HKbP5NM4~W^
zn{qse*gucGVsksdxQOS~VI0BHg3gCk{?#zpQ(SwV!UZ_-kW3ED<fllbL<uia1<@O~
znQ+$Aq{^ZUC4bi@;z6_IpZsgQ0LBb(J&+~Ht&}|=CTKz9vvS0PrX6v!DXYg><D0^0
z2kfO8soS83$i35BZ6b5j(7`^iJ?uXn5rPl-@!S)kLHJxf5`uz3)nMF1Qx*qe7F<S+
zV7NLbYGcA#FrPb)5(#d)e0#KhAFUlA--6cfrlSMoM1S<bZD1A3#A#&o!KLu#ZF?v$
z?xKQc(Rdce^{fZzO*_uH)tO8*o?MexUq-eNl#Z%~YI0-nBq9!Eav_?z82TtLl{jCu
zT4+9tbcEDI({qaZvXfs`?ZQorI0;IUnz5mecI4|$6m8yUW<f#ps&_+qmi7NT%y%+t
z&C%wrXnzpo!k2UTR1LzbF%lT#4{9QQh*mc4*6M({V^)j-eHi*^Ynl7(MdQADT{r_G
zGW`u3l5Q!K1YUciA;$Klwp$MCl=bG4Eb;$<H?zb)WENqaSqK0CuV!R9b``_z5Aro7
z2D~l^i^ruz{W)P9N=BTmd2t)@_@j;A#G(BFTxlh;RRPt!k;JzzLBV=9Nh?jp+JlXh
z4#+tPN8Z$oD@Eh)rzWz56tOoSAH`e_`@A<qb9O;<TT0YBi_#@rf7Wh)7f&3#Q&?gN
i0-0c+4gdh)rThYHtejGYHz8gC0000<MNUMnLSTZl;$vR`

delta 754
zcmV<O0uB9$28srdB!AIKL_t(|ob8)Qa>O7EMM)|*;r>VRU9zC!BAO6`E!_TZ(dDLP
z1~CY}-6;V800000@J^27IF7^rlVSfjzN0IUPFH@6PrLYuu7HZzAL4AtIhXXDGqLff
zL=ij#h(pP2Ag&P;NhYU_=xA~;Pr08hW&m-PbL@}hP<veK(SJLMj{)g|pqeXE%jvPP
zC$a<1me)%`S<|_(XPg=~d#*nzrLVxU?KMG+lUg{{M)dwc7ytkO008WQ|6FF95sAVu
z?ke%bWB)u#!`60yap5m(z}Q1W3#t#R{HtM5QkwQWg$r=vA(<SQ$xog}i4vZt31V*C
zX2DrclPZ%klz*Bwo*Xnw{>i`kD`3okW)5TtYBtIq5DT=R`B^!WgQgvEvn8uXt??~k
zwgXCSX4*EHgXiAmUR%f-HFUBM>>SEZXN2HGe!lcTXb`TOM?#P@s2a@Y&{f2VSOk|*
zJs4TliQ1TGESS$7M}asuU2S`Ke~jJ^kZ*zahZ*PqIe!s-a2r^KB561oeQ+t<y&Vtb
z#VwTcAnGsTyk7P6ymz~~wnZ!P29s;b8Y{?Ffp$PvLp80@c?=N;GPw}Vni%3Jua!7o
zjaC>n<VQ$NG_6ybFFQ4ws$Db_J()Q5NX^&~M+eGnCW^JP&76YhCGUpv^78)|nD1oa
znxjo$(SN|nRWIlAdFq6>VJ0g2pVBz9B3jve&T0p&9kb#JJBA^S_SSizjiMY|7;D;9
zGr*(K->@N>(LqVzwf7ogc;9WurLt8;Z?4Q1{||UGTl_<26SkU&008h_W|rfoXn6cV
zzJ|nr*9BqmxD=>A2W&&hh_f{>ZX+IlwDB7_v}+$gQ?u+9LABgS;@g)XXFI#3l`doL
z*+xhQ#GHgZZ)*C*qWSkz1KC1~DDLB<n9E_G_l9W9E@-W%M9DKLUBV@3?e=%^#KF6S
kEtVh<3HIp#003UfFKwQmQX?m~@c;k-07*qoM6N<$f-cZ%AOHXW

diff --git a/tests_zemu/snapshots/x-show_eth_address/00001.png b/tests_zemu/snapshots/x-show_eth_address/00001.png
index 84ed31e4dd3a26c154842fba0043ec5e482a74f5..35024425a9c677674dda193aff04a253fa36040f 100644
GIT binary patch
delta 677
zcmV;W0$Tl!295@hLJ8OgPx^f&9wD%iOBo9TkTaAY6VoPsW)G2XB7dr_eeyg@>;M%k
zaP9YbC?g)t=#$LP0dhl9-3p`@^trib<^-H?ULFO<nQo1db(+|$dH#sV*TlZ_Gr`T1
zQ96xQ^!iDd5JCtcgoNa!ic$jXuhlxs+JNF{Qw`Nx?lsw4O=UuTcXZhuAi=bRs#)&&
zl95>B?ze`tptCxSihm<p@h7gVhupI2*1oV?mqk^cedzXB20{5h<yiT<3NI`1+~p9h
zk^BhCR|?oswd)Z}HTc%CxvmoKRYP3~AtF+NKn9yf-pc)b@wyg~MdWC?I(%S{G8Rph
z^ZH(4i3u2wzVd*q*47@~JrNB6M^C`z8~OMFPo#Os+_0*Z2!D=W*_Vm*P^#}Za4O;L
zySh%e@Q#t(8lLa{yZnI4_yd$%P0lZ5`l8>u>(>D<NA4Sd?)P;k$$JSy%{h30N{~4R
zw_?LP^rgJb0nyd1HOE*#$fYons_=&RAl)Xe+;mrtNt7JK81dXKe>OE7-1OBha{pN+
ztQJ&NEEKcc?0=0r(Gerh$k@PE<rwl!8Ex*UyL&}Y3D#7ibRy03?(pV$VTHJgUZiQ*
z?nl+_HKYZ(+IlPQxa}hCuF?@v)4m9Jz~<Ws*=kFOan*^$r{Su4-Z~k-S-3ns0XK<U
zIA9LI{S4AS0o72d1e>7Dtmp149jHqy8++q$?;uE8?td8b?XcD>S>pc#$U`94GC~L;
zk1_LKlycmQc2xqZij)K;PuECE3|h`*2`M6?TFcl9&Nbi;=mFO|t#K}^EyX7kV!QdX
zI9vsp&if|dDiv%I-Zue?x6jAYNw`XxV+Hu$ln_D)A%qYjBJvBx8egZ_cN|;*0000<
LMNUMnLIPldEt^tO

delta 677
zcmV;W0$Tl!295@hLJ7tOPx^f&9$A2qOBo9tkTaAY6VoPsW_OWqB7f>#`{a3+*a0e7
z;M(u=P)0nO(I=Uo1LTIJx)n$*=yP+=%n3M0ULFO<nQo1db(+|$dH#sV*TlB-Gr`T1
zQ96xQ^!iDd5JCtcgoIQ}6(t7PU#q2-wE^|frZTFv;%l<EvdV-K?`X0+K!V8$RkPgl
zke*oMzEMM3&{>^E^?%E0fD|=&5mc7SxKFox<qvi&_MzKi83#Lj)yhbr$z2P{gy%<4
zzEX0t>JAuUsXE`<H`i6f?P{p2B1A+&5Xi;XBX8yY9=WbXWDz;~U~Krn7UfzrRnF@e
z!YUJRJ^IQ6vRYePboWHm0T4X_!<S)4BF#hQhE=UZa0tr2On;<@SUvo}sf4%t-a6sJ
zdyVAQ@Nm=L<p)&8AE4Z4a(*Gx9sSl_zYcgga#QQN(bpX#?<EX1=imV<LFOFXiVg3j
zFXe3li0*BzImY@yZiMc!-t;2gN%s|3Yq~4JBr*<SjCk(WKAT>=xaq4+<o>ftSS_fk
zQYdD*+3R*9B7a7nk-mX%m3_!JWwg1Y=Ef_a@^_H#no49&<n_Ec{Pn!5LR>`yY3jE7
zQFVJ=(t=!Jy%o3Lc9HhAVqLicgB=KXz~<Ws*=kFOan*^$r(sk*Z=GDfS-3ns0e2`|
zO@KK7_j8f{38;orCD;UIW<7Ub=|E9h+1MM0dj~<%a(_pkZ-=#B$rAq`Kpq0QmJvb-
zd5oF=qLkxaw5t+ORiq>+dAdeQV$gCfOGptB)mp|@aIOJ&Ko7XyX^nGPZ7DvX5Zle)
z#NjH)blx`sqg1d(c;5sl-aa2oC*dk(juqg0Q$h$Kgb+fAh{!KctzV~II_D7p0000<
LMNUMnLIPldNKZ*>

diff --git a/tests_zemu/snapshots/x-sign_basic/00002.png b/tests_zemu/snapshots/x-sign_basic/00002.png
index b47dabb41b7dc684ada2b0c35cd13175b5eb3fd6..5a83f1838bf5985c579867e2eb6927ad9e186374 100644
GIT binary patch
delta 836
zcmV-K1H1g(2HOUZB!41FL_t(|ob8-Zj^rQ=M6;{CN$!87++{yngJ|2B!Z?BMsrS`F
zV2lj}Dw#PBLI@#*5JG+f*L7XjrGE!%`prLrf2$opInOiD>Xn{Y+h^D%0rf;S<0V3A
zt_ESDUOl?7Hg%ros#N`bxW5+X4~G?8ff+1qp;R!->s}V_V}A=)z-zjRnTUs=RTE5`
zD5;YKI*`j2E1*owa1`b(tYV7<3=s~oZn#6X)+9hI{IUyy8<F0%S{6jP`Gg>Z5JCtc
z1mX_mKpbJgF0LQa{n?uI0ly5+s6%0wI$BUmvC*oec{%FV7bUegbG+-6qE*X7?E^9v
z=TcT&>gu(}yMMUU`aOWisyRW1>I_+M1ZUi!)5I6F{WT$ew;F0Anglg8m|oaI)`k<<
zRgiI&^$`ogYyu{`2Q7?B){c>(`tx(EOO6;PcIp`m<!!+ZVp(8Zb=r^=$`v5qQHUoM
z@=)zM7qHNZf@#pS*{V6osLf73zT-T*`6!z1ZSFVD{(l28Jlx-DoR1jGm*-$}zJC|m
znNE<IgIie;-kC1LZMzM#RLquz#q&6&`_Ta5T4rK&<`dva5vHCeOlxJaC{RLU(AG@t
zQ&cd=<8*qcJ5g7~^d(HQxfx$^DNDHbjmnBCB4w*Ew^OkNArj`0tN3!v`8M>KEl;nQ
zuqj;KyMKFVkp$?Kp02LcGpl9%F|{s5i)|4}K;p<x^<lpMRLJVrbOV<#6G2}|nuWE;
zb;;3)*W|IX?!^&S#nRNB>Z~KZgEn!q5u8U2*d$OPi#_j{pZ9tCmofGX=zgP61J3;&
z-h2^4$nWIOOyhbJpE)}t2RQ%PV_uR+{pq^##D75(CvYSkwF%Y{x~U^2&2)X!DK>Zv
zEjJ@Ea;<RbCZfc#@7F06y7N)1Z`xa@iBku3(jh3unfG;Z4X*2S!vt;`daJ>|9z5Pd
zrWGD>)7D+wu?6k&zam7QM%4lzUr^CL)OEDxSf^p$$z2kFU_NOP-SlYxY4LLIO+a{#
zAU%6mU@waKFymyG1uMWj#=L%{1kud8qiC9&o}<5RvUCU`gb+dqiSr+O*x;}LX8jES
O0000<MNUMnLSTXk&X-#N

delta 837
zcmV-L1G@a%2HXaaB!44GL_t(|ob8-Za>F1DL}{lt@%@kFyYwSd50Qje2^>he?<>QA
z5C{QYyDfzfLI@#*kpIAWp67Y$--()j^S9t<wF4-}aU@zj!jo(J8g>aly^ziM5>shr
zgRoF%k1niD9mlaMRNpV|uf_34u_jkwPL{TCRWQrzUKZ|S3x6`;vE0N;#HXND6AYUu
zse=SMFqbVd;98jJSs1sliY)>VB0a^r;SSMS69AF;*DeHZM0(e1SrFys2|)-Ugb+dq
z#2w0kxWa;6oPSLBXKSVp_+fBF9ZI{@(SllvjaDVihof$NQBsRD<yof`ty&&xACR#)
z4`r82UA?wEi+@Y4-vLBa%>@#w6SCk4&bUFRi7#mTIU#<x8fqh&32JCEys(8?8%|<Z
zLB@6EM{W{E12EV<Xdx<DJ4QnF$JbVuIbxjHsYfhaZwq!1%M#<N!-j-VW`KA{Ax<jf
zQ0+RGu+W+X)1YayRdbN2%}zW%<379jD4OnV?l;c<1Aj3*+}~-Ow;0QZ$6#|le;3-B
z&LlGix3Xq>M|w@S?KYexWVS4<T*?#0gODj)&YU<qg8}fQ2vg4!cD1rtD^Nma&<0KU
zQ&cd=gY;XQ6%CP*Y9EUA{AhO65|3j<WyO%dnUFR^{dNn*7KEsnAy>h4obzqy%l12+
zF=<n{z<+n^=rRG&X+Bpt6ARGMPhKY2O_5_wG69%7>_dH<@1F`2yVh>tD&{QESCVF7
z?QUICtSoU1B8ar`)mf39x>Fr>q<7FJZZ?c_&fu*Q6=t#FW9IvPp8jFP&VcSW3IcHL
z@9^@A5JLVTUn7l8!6$8}xQBs%_Lxt|QGdE_+<$({43WE%hHQd$glOvMNF!a}bcIb`
zL$AjoF>)<$=_aDYvG3QpDj=6J;hXl>Y2wrYopeZwapuFi&<yH2-Dv_h4ZYRiUk{e&
zDbw<fc+A#a+_44i^1mWPoT5^Jk1wcbAL=?<bF9NK?&K~3Krl~QL^Lh!KP_I)y#YwC
z5k6$^O6)~BA4Z()vLFM@Ys}-vlu0zB?#P+urss&So1_jQgb+dqA$fiQi-6#;YbD*$
P00000NkvXXu0mjfL&T1Q

diff --git a/tests_zemu/snapshots/x-sign_basic/00003.png b/tests_zemu/snapshots/x-sign_basic/00003.png
index 4e0f29065dd82f07ab7119d7e40a56d06427de7d..88e82f3d91c7b34212d5828cf60ee766b6a2949a 100644
GIT binary patch
delta 782
zcmV+p1M&Q-2Bij&B!BElL_t(|ob8-ja^xTkMVYDW#QR^8_c9-;P>dw>0AX<Fo{v-q
zgAfv6bK6NN00000008_3?)$#)n|~gtsW*QGU%MUfa$VOztMBxTwS9(D63|X$F<vB;
z;%Xok+SS7gTT|C{?Ml_(hx_Ys{ZORf62xF}3$=n+-uAL_AAj4h0=}mknTh@o^lCcO
zMoQWwIUUI5h!s#L=5Q3|E$rfm1cVq4F>iQ6w)P}|Ed06)IX5D{YxOLUa`6rU00000
z0D#R3*}xQKdmrX`-$5*$R*(=`dScMDpq^aAB}wsQWY#AoBoM7gNm}(h<UV-DVwzPl
zq(`9VqzkgjM1SotR3~IXQJeh+l_t8HZF)5p0g>4)Xnr@;E!;oM_YyKPug*G|lB3NP
znqncUS1U#my^7ZCk#G|xJN1l(`c=URN}1n>nF!DoPzO)$qRyMD)60;B-q=KgqRn1S
zvq!UX^ag9pt&QKzWwGd#@PxGwh<<rP0%U`q5&g1YwtuEPgNc?MMPLmdz6%|W5oF|G
zDVxK)ZcBX(&$<0EXJii&tG$b{LH+R?H6_p9rM7uBYYL+Lb1e~@n-<Fd2SD-NP~s{-
zH*p_&&6VMg5S1I1LXQRhGuoYEK{r0^1BrOAoM4D?>3fAfh0V5PB5x$i8CwmV5hFb=
zo)FDNB!6Tmy2*%FJ!ZwL!`&%vWL5KTK|1ydh|c{s?d=Vg|61ZYC1G9(U&_qT()t#E
zeW1s^z4(WZw<0#P>Mvx>7aCqiXoY>=@Bsi|kkIaFR_0=cvx)PJqPyhj?kqwco0Z4(
zmf`xj%|$Ywg7~@PW=f&*Y``lMo2@RUysW8cnSZ9+qI*s|W27a3d)f0_(S&<8YtYkU
z!3{nW_sS{%E24*IfA^a@@OgYy0=SHBzWXLtb}Ff!JRKPQvh*ZeKbwOORUY8j=$FI<
zOzN6rHpQ#D#LahnzuQNBBlL?{`rr>WbTg+v1?}Z!hh6{x0Po@-%fH5ag$q?400000
MNe4wvM6N<$g64F4A^-pY

delta 787
zcmV+u1MK{z2C4>-B!BTqL_t(|ob8-ja>F1DMQNuy@&1?Oz4Rkf50!)-APjNt`AThZ
z5yHr^Oj-&6000000H45lp67Y;&mER}^S9t<wF6#`<LGGhnx4M4_pr+Z)EBZCFA_>|
zH4ue*_3(qW)NvfErt16V{#qP=6e+j_F<4yTG7yi~y)4XQ3x8I?>vAJkqCW&JOXswa
zBlRRX9mr*i6>wdc-BB1<Sj83-5TZN8yx|VBwPpgy!oRYRGZFEu)lwkG#XAH500000
z0A6Mk56thuq_~vg#``^pO`<MKw3zYeVAq0LMH^n26rYbwdvb&XqApdERxJ;?51z3&
zWm|Kg2SIG&f`2SAv4R+~2`MNwXTPA*M6YRwdiMlDBqs%pr$RINro8-$ip(><NGL~N
zi*B$?rYl6N){01?SAE7cX*Xe#sYev97X~}j%R=Mo2m)OJWZ2{`>b$8sT?{F-1||xM
znk`GS$3$b}s#^GFE|*CINs(=eJSO^O?+K7~o)rBuVShMTU&Cra$00C>kH|vXVgwm;
zFqMtMo1Rsd;CX<*%^9KlM6<WUIWFT#xV}!$3UZbhT-}Rp70<W=9}GE5PB|4!aqg=4
zx%GhzzaO!EYw)47+&^<LdM}EUqM(cGW`2JZ0>!w|$z<>XmcNUI`<X?${fSjWM@o_&
z|2B!{Mt_VXnN|XAb)l!b?(P&f2F-Lg@>7ssl-P^!GRdDMUacgI*TWx+azWkG<IWvn
zSHxoO_=SwQt>GO(x&r`!7@@pr8uLnqvx)No#q=tn)N>~xcTHpSfymSk+0RgTG5Rft
zbnp2!I&Vn67ja{vSr^5W&6=J)oq8ACJ*SkP{C}Ns+{KpDVt_>BTD(Ymc*o&_(fR9R
zm;V)E;>quRsePVB5+=Y*1?7LnG`GKr#?CUTXP)+neo0J0p0noQr)JwpnuDaRfKvVJ
zeWa)<Vrq(K_4+o?_#wBqcq4RwnR7YmV?;G{F<*o2pI7E=k)Brp004YCzbvE!a5}YP
Rs|)}D002ovPDHLkV1hEkdhP%K

diff --git a/tests_zemu/snapshots/x-sign_basic2/00003.png b/tests_zemu/snapshots/x-sign_basic2/00003.png
index 17f84d47f80c4338a21b177fc0f6d49d994fd8c0..c9e22f2d341b947046a072f3f8461a14c3f96942 100644
GIT binary patch
delta 563
zcmV-30?hr@1l0tPEq_^(gdhxtovFSF_dgPMnFpq+R3I@xP|*K-vM~!=SYjUs00000
z008eK#u#Iqt>U8V&hOn7_$P$$V0Q{1qg;$JgpejqemK4@p%bbs$>pUOmCVN3&#D%y
z8<i|AONDx)q;?rqjAPso0m(OgV1y7@dHzYuOED^w8bG@;e1AD=<Eqq_`jQltMoAVd
zD)y>cBftWifEF=}O2>N5qN=rqiUo@bEjjh&GXOLgsaMuuNlc+*PO*x$s<>OwaodEe
z3rlrTl9s8XB`i)W)A6c9OjofO@reLwpVaqi%ZyH97D>82mWoDqifc=6Qk6RoTCB^K
zI(M(eD))fb@_#eQE}Qb}Tzmik001yRNA7x3O~!FJ1xeQ{DM8pOue+<-FEf{t!Rl$P
zS^=pQ_aE@soy-1Uf9vQ`GSyl=uc-3OhDyv{0m@lCBN@<_>^$X)0hk@6gZ7Q1Rm~xe
zkHG^|5vfz`**EC}kx_RrzIg<=gcYT_&5p~{&s9zG(toS`wra2}?AwG-x_9N{+6=1S
z%Pw~Mp)c+~Q585Q^%ltwreNaU-!}I%k#MnJLlKyR*wq+=3pnXyjKNek?%s{7uJXW(
z*j~)~ChSh@KVO#1S?*3plF~hMIfE;baZ}Mdcjc~6Y(D_{+Oq!2gH8Bm_KpBO722AJ
z1#e`<V=U+*X-fbA0000000000000000002ko<F^64Vi8U%)tNv002ovPDHLkV1lD{
B1{DAR

delta 563
zcmV-30?hr@1l0tPEq_~*#2^SoGgG}2_rE0fG9ON-C=`N<QImVV(gqM8_#k~800000
z006v`7-Niaw2F(aJHN9X_$P$$;OZ1UM!6Vc2q8_J^Wpfmgiffu<Sfs{sN`v!{VZxR
z->776St`^UCAG__VjSa&2uO9)2Sx~im7hOpc`im}QUhpLhJP<dX<QX=X<d?{(kRJ-
zMaAx_H3BTK31|_ss5GqCEUIcfR4iCjXvt+=J_A65k=Du@EQu*J%qiwrt%|z^9k)%m
zxUdu#C25&DYQo~unTA&lV!DdOh))Da`=q{CTV`|;vq;kIF;_HJr&Mj}O{y~UpvAgu
zsdM*gta1-{Eq_0Q?6N7p&cz1+0000TG~})adD4%=DM-3rNeRMQdA+)#{XBCi87!XG
ziVjGvn18@ycP{&b{jFn-lBrtvyrRl88!9n+1;}Udh-5%pvh$KV24HlMcG@?NRxyXz
zKL!s>MWjx#XWyg`L`L1t_~sGd5>}MrHrp>xKUY=BOMkD<w?%__VcRBr(Y-4l*G5qM
zUUqY(ANpeciK>KSUT=jNmV$}5Vg=8p5D7QeYbXL^5W5;<a03^ej4>F>#@)NI>nabt
zi0#FwZ^G`>{_|zIoaOE`Bq`l9mm|0%88;NYb64*A#P$QAuPy7ZJlKRMvv&mOsnFU)
zEO;Y}9xOxg&qe?M0000000000000000001R;13Xb4KP$^n&$uj002ovPDHLkV1j4>
B`&<A3

diff --git a/tests_zemu/snapshots/x-sign_basic2/00004.png b/tests_zemu/snapshots/x-sign_basic2/00004.png
index 0e82ee25031816c5b1f737d5521b2dea873c6be3..262628b39136c83e6f11a31f8ed83132fb7ff190 100644
GIT binary patch
delta 894
zcmV-^1A+XO2bBkqB!65<L_t(|ob6m$lH4E+C8@ay_dgPM$%m_5GFo_mFic19W2y~W
z0SS<uq!b7Q0)apv5D5H-D5aEAR<j_yGh&DF^Rhk>Ip-79y==w>XaY(pIp=G2+&|LC
zV!CR0%iYe&DCI4@dK9@T+bAWMtTk$8+b(eTHBsCo5r2)o%70HPniJ%ltM>bmwsW$|
z?(`gp{6Ufi#juv@G8i>`G#9x0nl8{<w-kiTc9K?^%`%XbwILAIfoAvWx`2p9BftPv
z!(&{G18`WY#Wi3U4It2L(SS)^1{@|JDPtriB`r;*p0H>d19mmX3nAz=uYyAg()LMv
zuSSC4B10(o_J2qjMRm>Xox6Y-x#cMJKs97r4%d@-(*>Ut6d1;z6+)}^vOg;O@dYjf
z0)apiOZI?y;I{$${6{MXS`~q^51%HHL+!5ttqApURV`ZeO>05AT<CAKFJjt#iq`_|
z3ztUETlhK^SFu(Wq`l&}*o>T*y2IH;X$VcX`s&fHd4Fj%hy;z2|Gj%P8#E!5(Y|(p
z?r>4IcQ<@4V)GZp83|X#2CrCDjADVP*PgLTT=J@h4p{6ff#P22e91d%@q*j?fc$x3
zv_b;yYAUjm@4TIfOk}f2XVWA;0X#_Q4he3mi0Q);xWSIRqBKMWXhvi1PYcfzppD7!
zSgDLL`hOzaCqU+n(bv$t-+76RId~6|g?6Gb$T0^?!H2g|4ds;(P|e<opk1EwRkYUA
zv4GecM&h=)#S#SFH{tU9M$s<&6{&b>*9NpTtF7YU7&YXJTC((^s^OGdHMCjeLw<-J
zRxLJHS0lH%YB5CFUJP{E@z;m|@s5s^I1Gpe`F|$U=Bo?$)H<By_Wb(*E$a8$fGjM-
z@-e4o_kiRS6DPb!73-$F9hZi%Hzoiq@*xtm#`3J%8}A0VF(M`RT=c?7-$>Q7t7|#d
z>Bh76j19<fz+LHu_%?JiW;fx<?0*RO8Ncb*$(Or8AQ1QxXeES-;QrkuE%JB=n)eBf
z#&_sFVFGskR|VC@r#go;x#%OO@0Ir34|3fYE}a@=165K(<2yJa0uV}<6?#Guu)@v>
z0LS!@Qr#k)UW)kc(N7yA0RKpIV4no5q=5$(rRJkDKF8@P=<5*^5C{YUfxssG19veM
UC8G|4oB#j-07*qoM6N<$g4toM<p2Nx

delta 895
zcmV-_1AzRM2bKqrB!68=L_t(|ob8-hlH4E+hDmB}!u^lLUGm^+my8yEKp3W@?_sJN
z3oY!(oum{5K@bE%5Cs1rrIb?2>MBUx8MVXwylhV-=X`>>m)*F4I-r!2bG}B${ULok
zrlW?J+~r)1O5Vz=uVSsrH!8_BYlWKIb_hItO%-=Z<gf9pihq-;<^nnAs{H;+%eh$P
zcX~EN{*a_bF}$U=jEb5+S_nLR%@*jb+Y*HIc9KS!U1eZV)|x;x2fE#B>jF`W&Hw{y
zhR<<v9)QhS4Xy#l=mY}Y79E(hW#G^ONogZ-QPP&F)H5xb&VY}a?S%;Rx>w<_1Zn%E
zy;mcX;1WY5`G59ED~jft+dB^dadOL1>Os|HTMpNgycvSe5)=&cXNA&gyzHNq{d_?P
zK@bE@mh1uZ;I{$${6{kfS{8v;A3jYYhuU8Q%?S0@s!Fu%n^uB6a*@AjU&OTg6wd|P
z7cNbnm+)~aj$$n>NS})BVprtCG#p-C)P~4(o3FmwIe#xr2GO8N^1t^}%?C{ht!Q7n
zz;L)KJGvX6i`e`{aYn<HvB5JIRYfsD)a%b!CN6npLkB$e)j+vNIv?_mR=jX~ACNyU
zj8<r%kD7+;#dqG%L^`sWq_brb?*KkY=?)2Qs)*~u8o0xbbwzE63DAv3-=8);Pe5yv
z;kHsMMt|#zxOaeDH(Fn#dB5{g8-4H|u?p>^(a6yUOX1CHWkY!y1hla?9cbsK+-)rk
zc5F86okQZDxy2KZzMF7){y@>r`4uU1X(tA>F{_Q@;W=vP7p-Ldx2;-S4%tv7!-sqj
zBdkj7T3v<Q=c>d|Wk=B!m!W}T%>eO&j^sBCM1OC5SJLKtixo@j@ItrY-v?;3ey<P6
zz_L9bi)(5RNKSL&gqNsd(v+8XDMU0_9ROzd5Di*kd8X`*7X#cGQIdx(Mq#YoNXm2I
z=|a{S##ikbACTj~3cDBa+tAHSZNihQ<RS1gJ`&gA_q!knf^R^}B2)tR=Pqrrj(5<!
zQg~=G#?uozVCR2TP~Cm1qe!zB{mSKgwf*+9TsOnnQ$uVZQEFIxha+YHBIz<hPsjsS
z?Cb!rO%KV|E#mZ4#CNxT+BgI7ABhg^lVGAWc(7<`K5E71oW2BoJ<$O{5ClQ6iGQBN
V6(vaEn?(Qs002ovPDHLkV1gHwwDSM}

diff --git a/tests_zemu/snapshots/x-sign_basic_eth/00003.png b/tests_zemu/snapshots/x-sign_basic_eth/00003.png
index 7da067717263a4123458545e73b8bbfaf8011b1a..8f46e011ddf44339e2d5f308a9420dee199d2983 100644
GIT binary patch
delta 325
zcmV-L0lNO-0^kCWB!4GKL_t(|obA|K62c%1Kv8tu3Hx6Xd-0<h86GXtmhiaetHZ!Z
z6QB`e0001h<{m1)>YS5jYpu#0*5#b@6R^0K_5?oSJrN|yZ?x9R!_IK&cGxp$Y3bSc
z_k{o263x1Z<c4oK$n^{|n#_6w3Ohg+X0S-(l$1yg-|ty5_J2M)N06TbzfqnmB68;R
zP%H%0jv$eI`SOUI>Dfa8rcj0^SN&ffVe{QXhr<g$*YSMtGk4jle*`U#1OULgbZ$fI
z1O??zi=m*rT>Q^DzDO9cS{<eensr6@avgn@;f|nTc0eJySRTb}2^bCu=uGE@L@>Sh
zp04woyMwv)JU;blWP?ofn@NP4=r=|VG;s=P;ybK~@B#n;0000000000000000JnJq
X=|j`wsT8W!00000NkvXXu0mjfumYA^

delta 309
zcmaFB^pI(SO1*}si(^Q|oVPau`I;4Y8WOj?QM>cs<4!7np6tREJX4we-Jh&DA(8vW
zLm37Jh6{HNKM8l{`1EG4`OL$$tpbl&?%X+D#Ux+luj1Jyz4!a44Tdqh-hT6mimEdE
zXDhgWo6BZBrR>AgW!8N4F`9L@ikZ#YK`d>PN2!-rN_+nIH4@eFva^*n&N<%EI4>$_
zSyUw<#<aFyLH6dG)6?Cbc$}BxGH5n3+5PJOFOJ>s<!;Hw{n&Z!^TG3XQddWcwy<(C
zH2mJQlXvZ8ktx!;eNCTAe$C&!&qHEkl<YFDS*5Pui)3r3O=e^i^)j-p^}qh}?A>#B
zs^<MN32XNGGW%r9tQY2Pd^&|(k&mo%IzKQ0eTNLDS27o$zE-uad|D1j*wfX|Wt~$(
F69DN$ho=Al

diff --git a/tests_zemu/snapshots/x-sign_basic_eth/00005.png b/tests_zemu/snapshots/x-sign_basic_eth/00005.png
index d5c158637c2892e637b6917af3ed4b6c857ea53e..88e2d4c94d4ae9fb6366e039c53d92a79206a4eb 100644
GIT binary patch
delta 822
zcmV-61Ihf%2F(VLB!3i1L_t(|ob8)iaw8!OMafil!v2@UUgm=e!RUc_G|0|9A1Rv_
zLVyq;cR~OF00000;5c80+e<0cUt^42VO{3k`FEw&7-JsRW<H)HrF5*VA--=L@Jl^F
ztk+WkI;Js3MXX*@rLeS>QYzJtExS7_fKs|GjjSS21}lGvKYs)g#Mts$)%jK8Vg)oF
zIw8Oc+Xb@k=g)_?92XN%=yqNSO}cBl#YG638~6I@klRw>iw7-7$53hWtT#zkz)~2<
zuFG!1;p$|(8O_Pk?Lkw=MF{%KoDM;I8M;>k003xkx(C=#g!DAoJZ(}vY~3KAO@|Dg
ztLu*3nb9*Pn}1-?^E^ru>#ZB<ry`8^7b*~5bCZ%hEuntOdNK8AT8kYQy&@H^yF;t9
z+AK1|%{O1A1eq>l(I83EzvZc9gQTRcs9)%e-Jz<C3B)}YvGptHiiVsEGA2rEPplKy
z6WVC42{+#`0dp4b)lgGBox1$SR(7#19i98OasW^?)PIk<4e7ym-Of-=q;7`gEZ0r|
zU8MC6Y1~vTrcZ0225+p(YO^$9G@~>3-j=5aq%oNuE3qO*pJn?5@O3fz65adVF1470
zb07-cq%+8vgGZsm+sTH~Oo*|WyBR?}J+-%?XL~xgAnq<BcH6vSiG|^taGCRxZd7ib
ziA!GUxqku4XC*J5UZaYBwv{Nnbt-jgTQ;<t<g<KWd)SodwT23*%}t4-O7F$QBYpjK
zRsefPx1=}}ScCQk)9z0f+e7Pgl)Lk8sI=<u+F)@k#qzmMt?mI~)0*(`J1UzurR8>Q
zmg=1eFedpd8l=MXnzdJc8=%IplC<Y+FO=|Y$$xqdJ$jty+O|jS6&ozaf$fcE@NVd3
zRyX0r=<fu2#_#sa^W_cz06qjMh0q9;&qLY}#|P-%CnOo=sfP);`ERPt#iu!kbZgaL
zsr;z6cR$DtGo3nB#3r(&N{eT3u>vfTTRhZ560qUs1Q^HENviH4yr&{Qd-TJ_6<~i!
zbT49`G-gS`3lD{6R}r7$Jp_F`m;e9(0N@h;0hmdlk&;su8vp<R07*qoM6N<$g3?)x
Aa{vGU

delta 821
zcmV-51Iql(2FwPKB!3f0L_t(|ob8)gaw{PWMaiq|g#9mxy}XaE5R3-IEIapnq-<J9
zViF*CLI3~&0002sIA4eDrIgCAF~+8_F7xjEyJ9uQ_;hPE9{Wfs9kbQN_iYD$DLaUr
z^;CfNX^c@3E0<I*%(hZWx%#nXcV`7qa<iqLRRnTpJs;u^fqw)sw!BnzewDab0o4p0
z5MYJv0?*ukJ|Et4Tns>_*?1*1=~LS+E<(^)zn4$DrY#k|c+hfm43##|a+72QEQNvW
zy6h$#t`5eVQJpN^9yE1agrL97=@7J*u6s2A0Duaodw~5!NKcd1(<;@&)(!I6w9DbK
zy6$)y(|e|56MqbPo<}h;Z{0{c6=A%;P=WB8o0Q~f37x0xET%J>)?)ibuSkW<=FsY_
zHj7NR`Rc2bAk$?m8YD^jH$Rnpkd%}a^$VS`IaHM~fw<-(Hh%@3(eUJgjET~6CYFio
z0d2I_z%*Yl0An7n)liaWI-T+ht*l~MI{Inb%mF~rP=7vZ8q$OByq}>MNZk#~S*{)c
zx=70%(zvNwTp!jz9bQ<M)n+kabfYo$-j=5aq&^w$E3qPapJn*~@O9Dq63zSFDzzAc
zb07-cq|wP3gRRi+)v}>94Pvx$Hyx<wrk2~<*x0evaCZ%{d*&5SjP%`v^ML1EqjK#`
zT;@_w41Y*-R+`1bYgEzCT8Z2%r+T{<WJ4_(KFbHTg;j}OtE-UuT$L!Q^j37WOVLoG
ztpN6dZpm*bu->eVq|M(gc7)d9KzHHYP-)fQ^}#Z+bkE1yHMIwXMQg&tkEm?Yl$LiX
zv}n)<z?k8)XpjoiYsy~vVSqZrO44Sttx#gOC4c2P@N^^l4BMmjj1QLMzz(|)csKMi
zQ=9N)lym|;<6GM0{C)=j0H1)AMW_Vw=PqrC;~g}w6q1bc)WZPW{5RF=?o%B_nzhQW
zRK8c+yPxH{8P1+6Vgrd%#o`%UtN@GTk{RkD4_I+?0E~U=BwM!$@2QB-?)`9a1=wE_
z9WK}>jfqn5!luydD&kYThoFxK0{{R309@ifzucjbdW+c@00000NkvXXu0mjfzsQ)2

diff --git a/tests_zemu/snapshots/x-sign_basic_eth/00006.png b/tests_zemu/snapshots/x-sign_basic_eth/00006.png
index b47dabb41b7dc684ada2b0c35cd13175b5eb3fd6..5a83f1838bf5985c579867e2eb6927ad9e186374 100644
GIT binary patch
delta 836
zcmV-K1H1g(2HOUZB!41FL_t(|ob8-Zj^rQ=M6;{CN$!87++{yngJ|2B!Z?BMsrS`F
zV2lj}Dw#PBLI@#*5JG+f*L7XjrGE!%`prLrf2$opInOiD>Xn{Y+h^D%0rf;S<0V3A
zt_ESDUOl?7Hg%ros#N`bxW5+X4~G?8ff+1qp;R!->s}V_V}A=)z-zjRnTUs=RTE5`
zD5;YKI*`j2E1*owa1`b(tYV7<3=s~oZn#6X)+9hI{IUyy8<F0%S{6jP`Gg>Z5JCtc
z1mX_mKpbJgF0LQa{n?uI0ly5+s6%0wI$BUmvC*oec{%FV7bUegbG+-6qE*X7?E^9v
z=TcT&>gu(}yMMUU`aOWisyRW1>I_+M1ZUi!)5I6F{WT$ew;F0Anglg8m|oaI)`k<<
zRgiI&^$`ogYyu{`2Q7?B){c>(`tx(EOO6;PcIp`m<!!+ZVp(8Zb=r^=$`v5qQHUoM
z@=)zM7qHNZf@#pS*{V6osLf73zT-T*`6!z1ZSFVD{(l28Jlx-DoR1jGm*-$}zJC|m
znNE<IgIie;-kC1LZMzM#RLquz#q&6&`_Ta5T4rK&<`dva5vHCeOlxJaC{RLU(AG@t
zQ&cd=<8*qcJ5g7~^d(HQxfx$^DNDHbjmnBCB4w*Ew^OkNArj`0tN3!v`8M>KEl;nQ
zuqj;KyMKFVkp$?Kp02LcGpl9%F|{s5i)|4}K;p<x^<lpMRLJVrbOV<#6G2}|nuWE;
zb;;3)*W|IX?!^&S#nRNB>Z~KZgEn!q5u8U2*d$OPi#_j{pZ9tCmofGX=zgP61J3;&
z-h2^4$nWIOOyhbJpE)}t2RQ%PV_uR+{pq^##D75(CvYSkwF%Y{x~U^2&2)X!DK>Zv
zEjJ@Ea;<RbCZfc#@7F06y7N)1Z`xa@iBku3(jh3unfG;Z4X*2S!vt;`daJ>|9z5Pd
zrWGD>)7D+wu?6k&zam7QM%4lzUr^CL)OEDxSf^p$$z2kFU_NOP-SlYxY4LLIO+a{#
zAU%6mU@waKFymyG1uMWj#=L%{1kud8qiC9&o}<5RvUCU`gb+dqiSr+O*x;}LX8jES
O0000<MNUMnLSTXk&X-#N

delta 837
zcmV-L1G@a%2HXaaB!44GL_t(|ob8-Za>F1DL}{lt@%@kFyYwSd50Qje2^>he?<>QA
z5C{QYyDfzfLI@#*kpIAWp67Y$--()j^S9t<wF4-}aU@zj!jo(J8g>aly^ziM5>shr
zgRoF%k1niD9mlaMRNpV|uf_34u_jkwPL{TCRWQrzUKZ|S3x6`;vE0N;#HXND6AYUu
zse=SMFqbVd;98jJSs1sliY)>VB0a^r;SSMS69AF;*DeHZM0(e1SrFys2|)-Ugb+dq
z#2w0kxWa;6oPSLBXKSVp_+fBF9ZI{@(SllvjaDVihof$NQBsRD<yof`ty&&xACR#)
z4`r82UA?wEi+@Y4-vLBa%>@#w6SCk4&bUFRi7#mTIU#<x8fqh&32JCEys(8?8%|<Z
zLB@6EM{W{E12EV<Xdx<DJ4QnF$JbVuIbxjHsYfhaZwq!1%M#<N!-j-VW`KA{Ax<jf
zQ0+RGu+W+X)1YayRdbN2%}zW%<379jD4OnV?l;c<1Aj3*+}~-Ow;0QZ$6#|le;3-B
z&LlGix3Xq>M|w@S?KYexWVS4<T*?#0gODj)&YU<qg8}fQ2vg4!cD1rtD^Nma&<0KU
zQ&cd=gY;XQ6%CP*Y9EUA{AhO65|3j<WyO%dnUFR^{dNn*7KEsnAy>h4obzqy%l12+
zF=<n{z<+n^=rRG&X+Bpt6ARGMPhKY2O_5_wG69%7>_dH<@1F`2yVh>tD&{QESCVF7
z?QUICtSoU1B8ar`)mf39x>Fr>q<7FJZZ?c_&fu*Q6=t#FW9IvPp8jFP&VcSW3IcHL
z@9^@A5JLVTUn7l8!6$8}xQBs%_Lxt|QGdE_+<$({43WE%hHQd$glOvMNF!a}bcIb`
zL$AjoF>)<$=_aDYvG3QpDj=6J;hXl>Y2wrYopeZwapuFi&<yH2-Dv_h4ZYRiUk{e&
zDbw<fc+A#a+_44i^1mWPoT5^Jk1wcbAL=?<bF9NK?&K~3Krl~QL^Lh!KP_I)y#YwC
z5k6$^O6)~BA4Z()vLFM@Ys}-vlu0zB?#P+urss&So1_jQgb+dqA$fiQi-6#;YbD*$
P00000NkvXXu0mjfL&T1Q

diff --git a/tests_zemu/snapshots/x-sign_basic_eth/00007.png b/tests_zemu/snapshots/x-sign_basic_eth/00007.png
index d5c158637c2892e637b6917af3ed4b6c857ea53e..88e2d4c94d4ae9fb6366e039c53d92a79206a4eb 100644
GIT binary patch
delta 822
zcmV-61Ihf%2F(VLB!3i1L_t(|ob8)iaw8!OMafil!v2@UUgm=e!RUc_G|0|9A1Rv_
zLVyq;cR~OF00000;5c80+e<0cUt^42VO{3k`FEw&7-JsRW<H)HrF5*VA--=L@Jl^F
ztk+WkI;Js3MXX*@rLeS>QYzJtExS7_fKs|GjjSS21}lGvKYs)g#Mts$)%jK8Vg)oF
zIw8Oc+Xb@k=g)_?92XN%=yqNSO}cBl#YG638~6I@klRw>iw7-7$53hWtT#zkz)~2<
zuFG!1;p$|(8O_Pk?Lkw=MF{%KoDM;I8M;>k003xkx(C=#g!DAoJZ(}vY~3KAO@|Dg
ztLu*3nb9*Pn}1-?^E^ru>#ZB<ry`8^7b*~5bCZ%hEuntOdNK8AT8kYQy&@H^yF;t9
z+AK1|%{O1A1eq>l(I83EzvZc9gQTRcs9)%e-Jz<C3B)}YvGptHiiVsEGA2rEPplKy
z6WVC42{+#`0dp4b)lgGBox1$SR(7#19i98OasW^?)PIk<4e7ym-Of-=q;7`gEZ0r|
zU8MC6Y1~vTrcZ0225+p(YO^$9G@~>3-j=5aq%oNuE3qO*pJn?5@O3fz65adVF1470
zb07-cq%+8vgGZsm+sTH~Oo*|WyBR?}J+-%?XL~xgAnq<BcH6vSiG|^taGCRxZd7ib
ziA!GUxqku4XC*J5UZaYBwv{Nnbt-jgTQ;<t<g<KWd)SodwT23*%}t4-O7F$QBYpjK
zRsefPx1=}}ScCQk)9z0f+e7Pgl)Lk8sI=<u+F)@k#qzmMt?mI~)0*(`J1UzurR8>Q
zmg=1eFedpd8l=MXnzdJc8=%IplC<Y+FO=|Y$$xqdJ$jty+O|jS6&ozaf$fcE@NVd3
zRyX0r=<fu2#_#sa^W_cz06qjMh0q9;&qLY}#|P-%CnOo=sfP);`ERPt#iu!kbZgaL
zsr;z6cR$DtGo3nB#3r(&N{eT3u>vfTTRhZ560qUs1Q^HENviH4yr&{Qd-TJ_6<~i!
zbT49`G-gS`3lD{6R}r7$Jp_F`m;e9(0N@h;0hmdlk&;su8vp<R07*qoM6N<$g3?)x
Aa{vGU

delta 821
zcmV-51Iql(2FwPKB!3f0L_t(|ob8)gaw{PWMaiq|g#9mxy}XaE5R3-IEIapnq-<J9
zViF*CLI3~&0002sIA4eDrIgCAF~+8_F7xjEyJ9uQ_;hPE9{Wfs9kbQN_iYD$DLaUr
z^;CfNX^c@3E0<I*%(hZWx%#nXcV`7qa<iqLRRnTpJs;u^fqw)sw!BnzewDab0o4p0
z5MYJv0?*ukJ|Et4Tns>_*?1*1=~LS+E<(^)zn4$DrY#k|c+hfm43##|a+72QEQNvW
zy6h$#t`5eVQJpN^9yE1agrL97=@7J*u6s2A0Duaodw~5!NKcd1(<;@&)(!I6w9DbK
zy6$)y(|e|56MqbPo<}h;Z{0{c6=A%;P=WB8o0Q~f37x0xET%J>)?)ibuSkW<=FsY_
zHj7NR`Rc2bAk$?m8YD^jH$Rnpkd%}a^$VS`IaHM~fw<-(Hh%@3(eUJgjET~6CYFio
z0d2I_z%*Yl0An7n)liaWI-T+ht*l~MI{Inb%mF~rP=7vZ8q$OByq}>MNZk#~S*{)c
zx=70%(zvNwTp!jz9bQ<M)n+kabfYo$-j=5aq&^w$E3qPapJn*~@O9Dq63zSFDzzAc
zb07-cq|wP3gRRi+)v}>94Pvx$Hyx<wrk2~<*x0evaCZ%{d*&5SjP%`v^ML1EqjK#`
zT;@_w41Y*-R+`1bYgEzCT8Z2%r+T{<WJ4_(KFbHTg;j}OtE-UuT$L!Q^j37WOVLoG
ztpN6dZpm*bu->eVq|M(gc7)d9KzHHYP-)fQ^}#Z+bkE1yHMIwXMQg&tkEm?Yl$LiX
zv}n)<z?k8)XpjoiYsy~vVSqZrO44Sttx#gOC4c2P@N^^l4BMmjj1QLMzz(|)csKMi
zQ=9N)lym|;<6GM0{C)=j0H1)AMW_Vw=PqrC;~g}w6q1bc)WZPW{5RF=?o%B_nzhQW
zRK8c+yPxH{8P1+6Vgrd%#o`%UtN@GTk{RkD4_I+?0E~U=BwM!$@2QB-?)`9a1=wE_
z9WK}>jfqn5!luydD&kYThoFxK0{{R309@ifzucjbdW+c@00000NkvXXu0mjfzsQ)2

diff --git a/tests_zemu/snapshots/x-sign_basic_eth/00008.png b/tests_zemu/snapshots/x-sign_basic_eth/00008.png
index 4e0f29065dd82f07ab7119d7e40a56d06427de7d..88e82f3d91c7b34212d5828cf60ee766b6a2949a 100644
GIT binary patch
delta 782
zcmV+p1M&Q-2Bij&B!BElL_t(|ob8-ja^xTkMVYDW#QR^8_c9-;P>dw>0AX<Fo{v-q
zgAfv6bK6NN00000008_3?)$#)n|~gtsW*QGU%MUfa$VOztMBxTwS9(D63|X$F<vB;
z;%Xok+SS7gTT|C{?Ml_(hx_Ys{ZORf62xF}3$=n+-uAL_AAj4h0=}mknTh@o^lCcO
zMoQWwIUUI5h!s#L=5Q3|E$rfm1cVq4F>iQ6w)P}|Ed06)IX5D{YxOLUa`6rU00000
z0D#R3*}xQKdmrX`-$5*$R*(=`dScMDpq^aAB}wsQWY#AoBoM7gNm}(h<UV-DVwzPl
zq(`9VqzkgjM1SotR3~IXQJeh+l_t8HZF)5p0g>4)Xnr@;E!;oM_YyKPug*G|lB3NP
znqncUS1U#my^7ZCk#G|xJN1l(`c=URN}1n>nF!DoPzO)$qRyMD)60;B-q=KgqRn1S
zvq!UX^ag9pt&QKzWwGd#@PxGwh<<rP0%U`q5&g1YwtuEPgNc?MMPLmdz6%|W5oF|G
zDVxK)ZcBX(&$<0EXJii&tG$b{LH+R?H6_p9rM7uBYYL+Lb1e~@n-<Fd2SD-NP~s{-
zH*p_&&6VMg5S1I1LXQRhGuoYEK{r0^1BrOAoM4D?>3fAfh0V5PB5x$i8CwmV5hFb=
zo)FDNB!6Tmy2*%FJ!ZwL!`&%vWL5KTK|1ydh|c{s?d=Vg|61ZYC1G9(U&_qT()t#E
zeW1s^z4(WZw<0#P>Mvx>7aCqiXoY>=@Bsi|kkIaFR_0=cvx)PJqPyhj?kqwco0Z4(
zmf`xj%|$Ywg7~@PW=f&*Y``lMo2@RUysW8cnSZ9+qI*s|W27a3d)f0_(S&<8YtYkU
z!3{nW_sS{%E24*IfA^a@@OgYy0=SHBzWXLtb}Ff!JRKPQvh*ZeKbwOORUY8j=$FI<
zOzN6rHpQ#D#LahnzuQNBBlL?{`rr>WbTg+v1?}Z!hh6{x0Po@-%fH5ag$q?400000
MNe4wvM6N<$g64F4A^-pY

delta 787
zcmV+u1MK{z2C4>-B!BTqL_t(|ob8-ja>F1DMQNuy@&1?Oz4Rkf50!)-APjNt`AThZ
z5yHr^Oj-&6000000H45lp67Y;&mER}^S9t<wF6#`<LGGhnx4M4_pr+Z)EBZCFA_>|
zH4ue*_3(qW)NvfErt16V{#qP=6e+j_F<4yTG7yi~y)4XQ3x8I?>vAJkqCW&JOXswa
zBlRRX9mr*i6>wdc-BB1<Sj83-5TZN8yx|VBwPpgy!oRYRGZFEu)lwkG#XAH500000
z0A6Mk56thuq_~vg#``^pO`<MKw3zYeVAq0LMH^n26rYbwdvb&XqApdERxJ;?51z3&
zWm|Kg2SIG&f`2SAv4R+~2`MNwXTPA*M6YRwdiMlDBqs%pr$RINro8-$ip(><NGL~N
zi*B$?rYl6N){01?SAE7cX*Xe#sYev97X~}j%R=Mo2m)OJWZ2{`>b$8sT?{F-1||xM
znk`GS$3$b}s#^GFE|*CINs(=eJSO^O?+K7~o)rBuVShMTU&Cra$00C>kH|vXVgwm;
zFqMtMo1Rsd;CX<*%^9KlM6<WUIWFT#xV}!$3UZbhT-}Rp70<W=9}GE5PB|4!aqg=4
zx%GhzzaO!EYw)47+&^<LdM}EUqM(cGW`2JZ0>!w|$z<>XmcNUI`<X?${fSjWM@o_&
z|2B!{Mt_VXnN|XAb)l!b?(P&f2F-Lg@>7ssl-P^!GRdDMUacgI*TWx+azWkG<IWvn
zSHxoO_=SwQt>GO(x&r`!7@@pr8uLnqvx)No#q=tn)N>~xcTHpSfymSk+0RgTG5Rft
zbnp2!I&Vn67ja{vSr^5W&6=J)oq8ACJ*SkP{C}Ns+{KpDVt_>BTD(Ymc*o&_(fR9R
zm;V)E;>quRsePVB5+=Y*1?7LnG`GKr#?CUTXP)+neo0J0p0noQr)JwpnuDaRfKvVJ
zeWa)<Vrq(K_4+o?_#wBqcq4RwnR7YmV?;G{F<*o2pI7E=k)Brp004YCzbvE!a5}YP
Rs|)}D002ovPDHLkV1hEkdhP%K

diff --git a/tests_zemu/snapshots/x-sign_basic_eth_warning/00000.png b/tests_zemu/snapshots/x-sign_basic_eth_warning/00000.png
index 53e74dc2b471080d9668e155b8f901b10108a88b..50d75f83e0a3f8b3830ead6c0932e64283c5d981 100644
GIT binary patch
delta 507
zcmV<X0R;Y+1eFAkB!ApVL_t(|ob8%Hj>8}fMKhzh3HLt|cbP?0WEqE~5FjS+ttv{4
zi?IoxZW{mq00000003Mf#u#Iq?L`y6vmJOljsuX^zV{^X${GRingMFk{l>s+0G7dJ
z0L=C7GznY=U?qNLJMcB-l^#ME=E*Ji&VUetyBSwF3&3ficYn7N{LOZt33t;C0002+
zPV(2bUMFEW(#W$?8aEA^x12uS)!`VUwBPq2*6*b1_cAhsAUz*+5R=Q${G3`;|J1lI
z9P=8$jIr52cP4K%dmfEa$L`o}ux|#Wb((uGThzDdku>$PUG}fYFzJu7e9?_|WEJY0
z0cw^D@kpMTpMOn*734OLrnTRFr`iLas|B^pb-B<Db0bI1{x(t#HFIBa@1~uPVpc+P
z#7^%Hx!FN`Ksoo#tvG%#EmzlN`JmiO>fCV8%D?Rz&Msuug8%>kyq7uu3+kk?RBM?7
zM9?E<Zo;=~EFS+R^f)QP)Intjb&|>t*tvR|+c9O=DReyRHMAf=Ru`6n<%yLiF*5_y
z?>7a=#ua)bXt!Iwi<tpP0<~I$r}rc+BX+V}&4Wr%KUH$1-uW$)1E5MoL4Z8EGQ2pC
xrsdmT!xm>r>GVM*=$#M%000000000O$UjarU9EiIRlWcK002ovPDHLkV1ky!>NWrX

delta 509
zcmV<Z0RsM&1eXMmB!AvXL_t(|ob8%Rj>8}fKs%$k3HLt|cbP?0WEqDf5FjS+ts+W|
z>mR}N^8o+=000000Dx1(7-NjHwP@mZwgPX*u>(@<drtzdtl<E!8K8{r*9Tr5unaC8
zV8*-CByj0~mH3&hz-7vj9zqzV$u0QKfDnQ^iz}Qt;IPoU+kXlEW-HKyJ97g7006v`
z{I#vuNm#Bl@~o8BO^fCuhhOiiaEwvP?|TsIcT)9x85u&5nh!dN$uKmZ(}<d%2DiX5
zuK`RSoAYyJ@<DUv-YRu$ifsb>W<ZM5Tzfg9K22XqrkCS#eno~!eU#*rYP2J(P~Qwt
zRxbD>X=Xl~0)H#WW$u}^-+iar1D@LpYO!^>&<#@~M_K<fvKwmVzT)0ZJ72}DgyxE!
z-W_tWgZ6-O?web2{9;O$b1tbQBS7vYb!xb0<==J=XBRT-fdc>l-pic-1$FANRQECm
zG(q>6xe4FiWAXSmp~tl%%s!}`piWZx0Xy%W=5oxo>vj~L^%`1eKvox)g5-&nCowYv
z)bBSNkc|<#*U)a4d>1nvkQ&q~1`qE^T2|~Nxta%+pnhG+k^RoAOm=`O5rqci-j(4=
zJDQSje+^rlC0nNtDnaiA2LJ#700000z(D>1Y>!|>%5w5N00000NkvXXu0mjffbQ%+

diff --git a/tests_zemu/snapshots/x-sign_basic_extra_fields/00002.png b/tests_zemu/snapshots/x-sign_basic_extra_fields/00002.png
index b47dabb41b7dc684ada2b0c35cd13175b5eb3fd6..5a83f1838bf5985c579867e2eb6927ad9e186374 100644
GIT binary patch
delta 836
zcmV-K1H1g(2HOUZB!41FL_t(|ob8-Zj^rQ=M6;{CN$!87++{yngJ|2B!Z?BMsrS`F
zV2lj}Dw#PBLI@#*5JG+f*L7XjrGE!%`prLrf2$opInOiD>Xn{Y+h^D%0rf;S<0V3A
zt_ESDUOl?7Hg%ros#N`bxW5+X4~G?8ff+1qp;R!->s}V_V}A=)z-zjRnTUs=RTE5`
zD5;YKI*`j2E1*owa1`b(tYV7<3=s~oZn#6X)+9hI{IUyy8<F0%S{6jP`Gg>Z5JCtc
z1mX_mKpbJgF0LQa{n?uI0ly5+s6%0wI$BUmvC*oec{%FV7bUegbG+-6qE*X7?E^9v
z=TcT&>gu(}yMMUU`aOWisyRW1>I_+M1ZUi!)5I6F{WT$ew;F0Anglg8m|oaI)`k<<
zRgiI&^$`ogYyu{`2Q7?B){c>(`tx(EOO6;PcIp`m<!!+ZVp(8Zb=r^=$`v5qQHUoM
z@=)zM7qHNZf@#pS*{V6osLf73zT-T*`6!z1ZSFVD{(l28Jlx-DoR1jGm*-$}zJC|m
znNE<IgIie;-kC1LZMzM#RLquz#q&6&`_Ta5T4rK&<`dva5vHCeOlxJaC{RLU(AG@t
zQ&cd=<8*qcJ5g7~^d(HQxfx$^DNDHbjmnBCB4w*Ew^OkNArj`0tN3!v`8M>KEl;nQ
zuqj;KyMKFVkp$?Kp02LcGpl9%F|{s5i)|4}K;p<x^<lpMRLJVrbOV<#6G2}|nuWE;
zb;;3)*W|IX?!^&S#nRNB>Z~KZgEn!q5u8U2*d$OPi#_j{pZ9tCmofGX=zgP61J3;&
z-h2^4$nWIOOyhbJpE)}t2RQ%PV_uR+{pq^##D75(CvYSkwF%Y{x~U^2&2)X!DK>Zv
zEjJ@Ea;<RbCZfc#@7F06y7N)1Z`xa@iBku3(jh3unfG;Z4X*2S!vt;`daJ>|9z5Pd
zrWGD>)7D+wu?6k&zam7QM%4lzUr^CL)OEDxSf^p$$z2kFU_NOP-SlYxY4LLIO+a{#
zAU%6mU@waKFymyG1uMWj#=L%{1kud8qiC9&o}<5RvUCU`gb+dqiSr+O*x;}LX8jES
O0000<MNUMnLSTXk&X-#N

delta 837
zcmV-L1G@a%2HXaaB!44GL_t(|ob8-Za>F1DL}{lt@%@kFyYwSd50Qje2^>he?<>QA
z5C{QYyDfzfLI@#*kpIAWp67Y$--()j^S9t<wF4-}aU@zj!jo(J8g>aly^ziM5>shr
zgRoF%k1niD9mlaMRNpV|uf_34u_jkwPL{TCRWQrzUKZ|S3x6`;vE0N;#HXND6AYUu
zse=SMFqbVd;98jJSs1sliY)>VB0a^r;SSMS69AF;*DeHZM0(e1SrFys2|)-Ugb+dq
z#2w0kxWa;6oPSLBXKSVp_+fBF9ZI{@(SllvjaDVihof$NQBsRD<yof`ty&&xACR#)
z4`r82UA?wEi+@Y4-vLBa%>@#w6SCk4&bUFRi7#mTIU#<x8fqh&32JCEys(8?8%|<Z
zLB@6EM{W{E12EV<Xdx<DJ4QnF$JbVuIbxjHsYfhaZwq!1%M#<N!-j-VW`KA{Ax<jf
zQ0+RGu+W+X)1YayRdbN2%}zW%<379jD4OnV?l;c<1Aj3*+}~-Ow;0QZ$6#|le;3-B
z&LlGix3Xq>M|w@S?KYexWVS4<T*?#0gODj)&YU<qg8}fQ2vg4!cD1rtD^Nma&<0KU
zQ&cd=gY;XQ6%CP*Y9EUA{AhO65|3j<WyO%dnUFR^{dNn*7KEsnAy>h4obzqy%l12+
zF=<n{z<+n^=rRG&X+Bpt6ARGMPhKY2O_5_wG69%7>_dH<@1F`2yVh>tD&{QESCVF7
z?QUICtSoU1B8ar`)mf39x>Fr>q<7FJZZ?c_&fu*Q6=t#FW9IvPp8jFP&VcSW3IcHL
z@9^@A5JLVTUn7l8!6$8}xQBs%_Lxt|QGdE_+<$({43WE%hHQd$glOvMNF!a}bcIb`
zL$AjoF>)<$=_aDYvG3QpDj=6J;hXl>Y2wrYopeZwapuFi&<yH2-Dv_h4ZYRiUk{e&
zDbw<fc+A#a+_44i^1mWPoT5^Jk1wcbAL=?<bF9NK?&K~3Krl~QL^Lh!KP_I)y#YwC
z5k6$^O6)~BA4Z()vLFM@Ys}-vlu0zB?#P+urss&So1_jQgb+dqA$fiQi-6#;YbD*$
P00000NkvXXu0mjfL&T1Q

diff --git a/tests_zemu/snapshots/x-sign_basic_extra_fields/00003.png b/tests_zemu/snapshots/x-sign_basic_extra_fields/00003.png
index 4e0f29065dd82f07ab7119d7e40a56d06427de7d..88e82f3d91c7b34212d5828cf60ee766b6a2949a 100644
GIT binary patch
delta 782
zcmV+p1M&Q-2Bij&B!BElL_t(|ob8-ja^xTkMVYDW#QR^8_c9-;P>dw>0AX<Fo{v-q
zgAfv6bK6NN00000008_3?)$#)n|~gtsW*QGU%MUfa$VOztMBxTwS9(D63|X$F<vB;
z;%Xok+SS7gTT|C{?Ml_(hx_Ys{ZORf62xF}3$=n+-uAL_AAj4h0=}mknTh@o^lCcO
zMoQWwIUUI5h!s#L=5Q3|E$rfm1cVq4F>iQ6w)P}|Ed06)IX5D{YxOLUa`6rU00000
z0D#R3*}xQKdmrX`-$5*$R*(=`dScMDpq^aAB}wsQWY#AoBoM7gNm}(h<UV-DVwzPl
zq(`9VqzkgjM1SotR3~IXQJeh+l_t8HZF)5p0g>4)Xnr@;E!;oM_YyKPug*G|lB3NP
znqncUS1U#my^7ZCk#G|xJN1l(`c=URN}1n>nF!DoPzO)$qRyMD)60;B-q=KgqRn1S
zvq!UX^ag9pt&QKzWwGd#@PxGwh<<rP0%U`q5&g1YwtuEPgNc?MMPLmdz6%|W5oF|G
zDVxK)ZcBX(&$<0EXJii&tG$b{LH+R?H6_p9rM7uBYYL+Lb1e~@n-<Fd2SD-NP~s{-
zH*p_&&6VMg5S1I1LXQRhGuoYEK{r0^1BrOAoM4D?>3fAfh0V5PB5x$i8CwmV5hFb=
zo)FDNB!6Tmy2*%FJ!ZwL!`&%vWL5KTK|1ydh|c{s?d=Vg|61ZYC1G9(U&_qT()t#E
zeW1s^z4(WZw<0#P>Mvx>7aCqiXoY>=@Bsi|kkIaFR_0=cvx)PJqPyhj?kqwco0Z4(
zmf`xj%|$Ywg7~@PW=f&*Y``lMo2@RUysW8cnSZ9+qI*s|W27a3d)f0_(S&<8YtYkU
z!3{nW_sS{%E24*IfA^a@@OgYy0=SHBzWXLtb}Ff!JRKPQvh*ZeKbwOORUY8j=$FI<
zOzN6rHpQ#D#LahnzuQNBBlL?{`rr>WbTg+v1?}Z!hh6{x0Po@-%fH5ag$q?400000
MNe4wvM6N<$g64F4A^-pY

delta 787
zcmV+u1MK{z2C4>-B!BTqL_t(|ob8-ja>F1DMQNuy@&1?Oz4Rkf50!)-APjNt`AThZ
z5yHr^Oj-&6000000H45lp67Y;&mER}^S9t<wF6#`<LGGhnx4M4_pr+Z)EBZCFA_>|
zH4ue*_3(qW)NvfErt16V{#qP=6e+j_F<4yTG7yi~y)4XQ3x8I?>vAJkqCW&JOXswa
zBlRRX9mr*i6>wdc-BB1<Sj83-5TZN8yx|VBwPpgy!oRYRGZFEu)lwkG#XAH500000
z0A6Mk56thuq_~vg#``^pO`<MKw3zYeVAq0LMH^n26rYbwdvb&XqApdERxJ;?51z3&
zWm|Kg2SIG&f`2SAv4R+~2`MNwXTPA*M6YRwdiMlDBqs%pr$RINro8-$ip(><NGL~N
zi*B$?rYl6N){01?SAE7cX*Xe#sYev97X~}j%R=Mo2m)OJWZ2{`>b$8sT?{F-1||xM
znk`GS$3$b}s#^GFE|*CINs(=eJSO^O?+K7~o)rBuVShMTU&Cra$00C>kH|vXVgwm;
zFqMtMo1Rsd;CX<*%^9KlM6<WUIWFT#xV}!$3UZbhT-}Rp70<W=9}GE5PB|4!aqg=4
zx%GhzzaO!EYw)47+&^<LdM}EUqM(cGW`2JZ0>!w|$z<>XmcNUI`<X?${fSjWM@o_&
z|2B!{Mt_VXnN|XAb)l!b?(P&f2F-Lg@>7ssl-P^!GRdDMUacgI*TWx+azWkG<IWvn
zSHxoO_=SwQt>GO(x&r`!7@@pr8uLnqvx)No#q=tn)N>~xcTHpSfymSk+0RgTG5Rft
zbnp2!I&Vn67ja{vSr^5W&6=J)oq8ACJ*SkP{C}Ns+{KpDVt_>BTD(Ymc*o&_(fR9R
zm;V)E;>quRsePVB5+=Y*1?7LnG`GKr#?CUTXP)+neo0J0p0noQr)JwpnuDaRfKvVJ
zeWa)<Vrq(K_4+o?_#wBqcq4RwnR7YmV?;G{F<*o2pI7E=k)Brp004YCzbvE!a5}YP
Rs|)}D002ovPDHLkV1hEkdhP%K


From 45eb5ce242500fd81cdfc41d9f37a5607ff48058 Mon Sep 17 00:00:00 2001
From: ftheirs <fernando@zondax.ch>
Date: Thu, 13 Jul 2023 10:00:24 -0300
Subject: [PATCH 5/5] bump version & update snapshots

---
 app/Makefile.version                       |   2 +-
 tests_zemu/snapshots/s-mainmenu/00004.png  | Bin 462 -> 468 bytes
 tests_zemu/snapshots/s-mainmenu/00010.png  | Bin 462 -> 468 bytes
 tests_zemu/snapshots/sp-mainmenu/00004.png | Bin 407 -> 402 bytes
 tests_zemu/snapshots/sp-mainmenu/00010.png | Bin 407 -> 402 bytes
 tests_zemu/snapshots/st-mainmenu/00001.png | Bin 13698 -> 13748 bytes
 tests_zemu/snapshots/x-mainmenu/00004.png  | Bin 407 -> 402 bytes
 tests_zemu/snapshots/x-mainmenu/00010.png  | Bin 407 -> 402 bytes
 8 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/app/Makefile.version b/app/Makefile.version
index 91f5f7c3..c4068ebb 100644
--- a/app/Makefile.version
+++ b/app/Makefile.version
@@ -3,4 +3,4 @@ APPVERSION_M=2
 # This is the `spec_version` field of `Runtime`
 APPVERSION_N=34
 # This is the patch version of this release
-APPVERSION_P=11
+APPVERSION_P=12
diff --git a/tests_zemu/snapshots/s-mainmenu/00004.png b/tests_zemu/snapshots/s-mainmenu/00004.png
index 1ede1af1d104a5eb65314d9dc8ece5861aaab5dd..5c2e7827b6f1d5f397e1b52e23c31febca560c94 100644
GIT binary patch
delta 442
zcmV;r0Y(1K1JnbMB!8PpL_t(|ob8#xZp0uAM4hVp{~w$~_CSjqV@4QCV5@njC_rGx
z1{<#kA%qYzk?WM}be;!4^)L8dy?`LcYxN5Ln572LzMPc3PB~sb@AHG{Aj%B6gMOn2
zx}$dDYuU_M6s?hnbHe04wJ(@a$p#<7BRe3ur1nZ6w-m1G`hRaZ5a_<KJ=zQqjeG4s
z822=$+E~YK79Bw$3%Q-km*ATl=T1)<Agf~@k~B4SbZbrVjRR~8M^i61FzQwl2|rej
z=jqx3MqkQ3fM)=FT<VP5B!9%kP1t@Z3}7xY26F?_zR!J7!{~WW=k5l`ZNLUnzmAd`
zS<fPwRt7L_*nb98KT6WGI46Qx5Wb^!WI<p^SqK7C<JOJSvtSlfM%|IEP%Gvn(iO~Y
z#dEoxYqP8-SPQB}-4;d406xPX@s(viy6yoXf0VoTg)Xk{H5eC#CfRiw!5x6Bn0)|~
z=yJuNth-h$*8Lxlh#FFFqxRwZ9sQYSi*dNDmcW%u9W$Bb9#<Mq!p&$qf+j89I5POl
kWn=+(7D5Oigb=cVHw1m-=~W(Y3;+NC07*qoM6N<$f_>V`9smFU

delta 436
zcmV;l0ZabW1I`1GB!87jL_t(|ob8#xmV+P+MdO_5|9`LxXORvkCLtwQ1>1L59s#xQ
z1rjI`0001RBHK#a>Rcau)JO0;`U8?IkI`T7W`-IdW0{rRR$3m<`{hD)AYnu4An(Y5
z?x>mg8TRHPiqwe6Sz$__+7r|$_TVO5G6OgyWmE=olL=Kfet+%2K=+CLXfq(2_u7AO
z+*4UKv5wsgT7pszxt;CJ;F%NGPFERF)KM2KO-&uyT2p-D1lz*W)XPnbvQ=fm+sbi0
zT{A%G3%L*A84xd*vf@_7A8>ICwttKPY9pgiJ0KbRm<KhKp8IlcZ$N1aJfQk^6x1ks
znqpcQpxR;&pnrZA*3+yL$toz`qjpq5!4P{86ukOn>#WskvI??U_sCSJ9p*5+1#?^D
zcZErBHj-ySwXEBsh)v*U#N(~hr_OyqDjsPc<Ef><-3G^pLe|%loPHC@84#ah_7PYj
zk1Hk?@d)Go4`8xJ%4yUwd_Jx{jEj%enE2#UW@g&wl`VUk(Y6GgH2qZ|2Y<PI==uWy
e0002+wfq4%6Wj0btE0#O0000<MNUMnLSTZYa?Pm#

diff --git a/tests_zemu/snapshots/s-mainmenu/00010.png b/tests_zemu/snapshots/s-mainmenu/00010.png
index 1ede1af1d104a5eb65314d9dc8ece5861aaab5dd..5c2e7827b6f1d5f397e1b52e23c31febca560c94 100644
GIT binary patch
delta 442
zcmV;r0Y(1K1JnbMB!8PpL_t(|ob8#xZp0uAM4hVp{~w$~_CSjqV@4QCV5@njC_rGx
z1{<#kA%qYzk?WM}be;!4^)L8dy?`LcYxN5Ln572LzMPc3PB~sb@AHG{Aj%B6gMOn2
zx}$dDYuU_M6s?hnbHe04wJ(@a$p#<7BRe3ur1nZ6w-m1G`hRaZ5a_<KJ=zQqjeG4s
z822=$+E~YK79Bw$3%Q-km*ATl=T1)<Agf~@k~B4SbZbrVjRR~8M^i61FzQwl2|rej
z=jqx3MqkQ3fM)=FT<VP5B!9%kP1t@Z3}7xY26F?_zR!J7!{~WW=k5l`ZNLUnzmAd`
zS<fPwRt7L_*nb98KT6WGI46Qx5Wb^!WI<p^SqK7C<JOJSvtSlfM%|IEP%Gvn(iO~Y
z#dEoxYqP8-SPQB}-4;d406xPX@s(viy6yoXf0VoTg)Xk{H5eC#CfRiw!5x6Bn0)|~
z=yJuNth-h$*8Lxlh#FFFqxRwZ9sQYSi*dNDmcW%u9W$Bb9#<Mq!p&$qf+j89I5POl
kWn=+(7D5Oigb=cVHw1m-=~W(Y3;+NC07*qoM6N<$f_>V`9smFU

delta 436
zcmV;l0ZabW1I`1GB!87jL_t(|ob8#xmV+P+MdO_5|9`LxXORvkCLtwQ1>1L59s#xQ
z1rjI`0001RBHK#a>Rcau)JO0;`U8?IkI`T7W`-IdW0{rRR$3m<`{hD)AYnu4An(Y5
z?x>mg8TRHPiqwe6Sz$__+7r|$_TVO5G6OgyWmE=olL=Kfet+%2K=+CLXfq(2_u7AO
z+*4UKv5wsgT7pszxt;CJ;F%NGPFERF)KM2KO-&uyT2p-D1lz*W)XPnbvQ=fm+sbi0
zT{A%G3%L*A84xd*vf@_7A8>ICwttKPY9pgiJ0KbRm<KhKp8IlcZ$N1aJfQk^6x1ks
znqpcQpxR;&pnrZA*3+yL$toz`qjpq5!4P{86ukOn>#WskvI??U_sCSJ9p*5+1#?^D
zcZErBHj-ySwXEBsh)v*U#N(~hr_OyqDjsPc<Ef><-3G^pLe|%loPHC@84#ah_7PYj
zk1Hk?@d)Go4`8xJ%4yUwd_Jx{jEj%enE2#UW@g&wl`VUk(Y6GgH2qZ|2Y<PI==uWy
e0002+wfq4%6Wj0btE0#O0000<MNUMnLSTZYa?Pm#

diff --git a/tests_zemu/snapshots/sp-mainmenu/00004.png b/tests_zemu/snapshots/sp-mainmenu/00004.png
index a39226949b8a997636a1703467455aa7072f67eb..e88f0b3f3def47623ef057e816d9e9d5f7e1397d 100644
GIT binary patch
delta 375
zcmbQvJc)UNN`0iKi(^Q|oVPcl`3@-vv?iLoYx%36`Rx(&M1|=K#Z#C4s`vNh_TUqV
zmSSQ+fFG_(N=k1(o?NE)B=K%zf2Uzo`9qH7%mL?~PFd4&MB?(#ngCIbqXtiyp3dBq
zwEbFD`D*#FCjqB=4*g!Cvh&P})>UCr&F{bbQg~c%t>AmIC`_xcJ#AIl^Ze+*lXq)u
z=IA*liusy`JhPO0mdANZ?rFx~On<H1S@zafnK$e+x19URA#T^!Q>zyrIr~2$dUD13
zA2PL;hbMT}&-A;pWWPjmLTBg+q5p@c-Kxk}`+H&QZHs8V){oLROJ;M_o_c%ZZvKmD
z{_0b`xAoj_SzW-vr~asN`*G{k@3|(q?uWO%?z?ze|8btahP3aiEvzMW*6Ps}e(VX=
zR+XLM*M1ql{ok4udQ<4pJ=N6w-={79%3Y|lSYwy(`+U9K@k$|9L<l{2Zp)bQM?{t3
R0OKT(sHdx+%Q~loCIHD_tC|1+

delta 380
zcmbQlJe_%hN`0KCi(^Q|oVPa<`<fL5+7h?joL%r=`E2a3<|zSe0;Q>KXMg`O64U+3
z7HG)AfB+xlJ3BgFyq&%L)`|6{?EidvF7DzEx6pO4oEE%ENhsOp_h+}O3L>c|cu(0r
zZ9Kd9T6N^#j}ClG&uG+ytDelQN?+0EWm>W9x_G^0JY%NEw8cdN<pIuHE$hBEHs3k>
z`e6wdm;1$#rAFsJ8kGlMsF||&r~7-EIhX(3T&Z{9*S#ktt9XBA$c6s9<$dQ5+iKY(
zyB`;SDchwu`JYkm3eS4Otc1?U6GGn;y{+!aPp<2EnL20Ye5e1tKKA`qHBMhM3M|d8
zOV4_H`COK3MrqBbsXg~wR*UGh7iDd2Z~ULS;ny|ki+eZC-J5i->?`NHYfYQ(E%5Vp
z@O!lTd?w>Faf{C_@3PYF`<Sji(_*pXzTdX;Ag$&1nZL9je)aj<!>=2^x-%g{iJ{=W
X^!y|~)!eGp>p`NPu6{1-oD!M<(I>ZC

diff --git a/tests_zemu/snapshots/sp-mainmenu/00010.png b/tests_zemu/snapshots/sp-mainmenu/00010.png
index a39226949b8a997636a1703467455aa7072f67eb..e88f0b3f3def47623ef057e816d9e9d5f7e1397d 100644
GIT binary patch
delta 375
zcmbQvJc)UNN`0iKi(^Q|oVPcl`3@-vv?iLoYx%36`Rx(&M1|=K#Z#C4s`vNh_TUqV
zmSSQ+fFG_(N=k1(o?NE)B=K%zf2Uzo`9qH7%mL?~PFd4&MB?(#ngCIbqXtiyp3dBq
zwEbFD`D*#FCjqB=4*g!Cvh&P})>UCr&F{bbQg~c%t>AmIC`_xcJ#AIl^Ze+*lXq)u
z=IA*liusy`JhPO0mdANZ?rFx~On<H1S@zafnK$e+x19URA#T^!Q>zyrIr~2$dUD13
zA2PL;hbMT}&-A;pWWPjmLTBg+q5p@c-Kxk}`+H&QZHs8V){oLROJ;M_o_c%ZZvKmD
z{_0b`xAoj_SzW-vr~asN`*G{k@3|(q?uWO%?z?ze|8btahP3aiEvzMW*6Ps}e(VX=
zR+XLM*M1ql{ok4udQ<4pJ=N6w-={79%3Y|lSYwy(`+U9K@k$|9L<l{2Zp)bQM?{t3
R0OKT(sHdx+%Q~loCIHD_tC|1+

delta 380
zcmbQlJe_%hN`0KCi(^Q|oVPa<`<fL5+7h?joL%r=`E2a3<|zSe0;Q>KXMg`O64U+3
z7HG)AfB+xlJ3BgFyq&%L)`|6{?EidvF7DzEx6pO4oEE%ENhsOp_h+}O3L>c|cu(0r
zZ9Kd9T6N^#j}ClG&uG+ytDelQN?+0EWm>W9x_G^0JY%NEw8cdN<pIuHE$hBEHs3k>
z`e6wdm;1$#rAFsJ8kGlMsF||&r~7-EIhX(3T&Z{9*S#ktt9XBA$c6s9<$dQ5+iKY(
zyB`;SDchwu`JYkm3eS4Otc1?U6GGn;y{+!aPp<2EnL20Ye5e1tKKA`qHBMhM3M|d8
zOV4_H`COK3MrqBbsXg~wR*UGh7iDd2Z~ULS;ny|ki+eZC-J5i->?`NHYfYQ(E%5Vp
z@O!lTd?w>Faf{C_@3PYF`<Sji(_*pXzTdX;Ag$&1nZL9je)aj<!>=2^x-%g{iJ{=W
X^!y|~)!eGp>p`NPu6{1-oD!M<(I>ZC

diff --git a/tests_zemu/snapshots/st-mainmenu/00001.png b/tests_zemu/snapshots/st-mainmenu/00001.png
index 841da079bd7cb2e01122c3f1d22d9ab2abbbded7..eb93bdd4e5176acd0822075bccd4cdaab2c1063c 100644
GIT binary patch
delta 11920
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

delta 11802
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
Y^<!Eyh1-f-n81&@nYC&8W%q~w1F(wSzW@LL

diff --git a/tests_zemu/snapshots/x-mainmenu/00004.png b/tests_zemu/snapshots/x-mainmenu/00004.png
index a39226949b8a997636a1703467455aa7072f67eb..e88f0b3f3def47623ef057e816d9e9d5f7e1397d 100644
GIT binary patch
delta 375
zcmbQvJc)UNN`0iKi(^Q|oVPcl`3@-vv?iLoYx%36`Rx(&M1|=K#Z#C4s`vNh_TUqV
zmSSQ+fFG_(N=k1(o?NE)B=K%zf2Uzo`9qH7%mL?~PFd4&MB?(#ngCIbqXtiyp3dBq
zwEbFD`D*#FCjqB=4*g!Cvh&P})>UCr&F{bbQg~c%t>AmIC`_xcJ#AIl^Ze+*lXq)u
z=IA*liusy`JhPO0mdANZ?rFx~On<H1S@zafnK$e+x19URA#T^!Q>zyrIr~2$dUD13
zA2PL;hbMT}&-A;pWWPjmLTBg+q5p@c-Kxk}`+H&QZHs8V){oLROJ;M_o_c%ZZvKmD
z{_0b`xAoj_SzW-vr~asN`*G{k@3|(q?uWO%?z?ze|8btahP3aiEvzMW*6Ps}e(VX=
zR+XLM*M1ql{ok4udQ<4pJ=N6w-={79%3Y|lSYwy(`+U9K@k$|9L<l{2Zp)bQM?{t3
R0OKT(sHdx+%Q~loCIHD_tC|1+

delta 380
zcmbQlJe_%hN`0KCi(^Q|oVPa<`<fL5+7h?joL%r=`E2a3<|zSe0;Q>KXMg`O64U+3
z7HG)AfB+xlJ3BgFyq&%L)`|6{?EidvF7DzEx6pO4oEE%ENhsOp_h+}O3L>c|cu(0r
zZ9Kd9T6N^#j}ClG&uG+ytDelQN?+0EWm>W9x_G^0JY%NEw8cdN<pIuHE$hBEHs3k>
z`e6wdm;1$#rAFsJ8kGlMsF||&r~7-EIhX(3T&Z{9*S#ktt9XBA$c6s9<$dQ5+iKY(
zyB`;SDchwu`JYkm3eS4Otc1?U6GGn;y{+!aPp<2EnL20Ye5e1tKKA`qHBMhM3M|d8
zOV4_H`COK3MrqBbsXg~wR*UGh7iDd2Z~ULS;ny|ki+eZC-J5i->?`NHYfYQ(E%5Vp
z@O!lTd?w>Faf{C_@3PYF`<Sji(_*pXzTdX;Ag$&1nZL9je)aj<!>=2^x-%g{iJ{=W
X^!y|~)!eGp>p`NPu6{1-oD!M<(I>ZC

diff --git a/tests_zemu/snapshots/x-mainmenu/00010.png b/tests_zemu/snapshots/x-mainmenu/00010.png
index a39226949b8a997636a1703467455aa7072f67eb..e88f0b3f3def47623ef057e816d9e9d5f7e1397d 100644
GIT binary patch
delta 375
zcmbQvJc)UNN`0iKi(^Q|oVPcl`3@-vv?iLoYx%36`Rx(&M1|=K#Z#C4s`vNh_TUqV
zmSSQ+fFG_(N=k1(o?NE)B=K%zf2Uzo`9qH7%mL?~PFd4&MB?(#ngCIbqXtiyp3dBq
zwEbFD`D*#FCjqB=4*g!Cvh&P})>UCr&F{bbQg~c%t>AmIC`_xcJ#AIl^Ze+*lXq)u
z=IA*liusy`JhPO0mdANZ?rFx~On<H1S@zafnK$e+x19URA#T^!Q>zyrIr~2$dUD13
zA2PL;hbMT}&-A;pWWPjmLTBg+q5p@c-Kxk}`+H&QZHs8V){oLROJ;M_o_c%ZZvKmD
z{_0b`xAoj_SzW-vr~asN`*G{k@3|(q?uWO%?z?ze|8btahP3aiEvzMW*6Ps}e(VX=
zR+XLM*M1ql{ok4udQ<4pJ=N6w-={79%3Y|lSYwy(`+U9K@k$|9L<l{2Zp)bQM?{t3
R0OKT(sHdx+%Q~loCIHD_tC|1+

delta 380
zcmbQlJe_%hN`0KCi(^Q|oVPa<`<fL5+7h?joL%r=`E2a3<|zSe0;Q>KXMg`O64U+3
z7HG)AfB+xlJ3BgFyq&%L)`|6{?EidvF7DzEx6pO4oEE%ENhsOp_h+}O3L>c|cu(0r
zZ9Kd9T6N^#j}ClG&uG+ytDelQN?+0EWm>W9x_G^0JY%NEw8cdN<pIuHE$hBEHs3k>
z`e6wdm;1$#rAFsJ8kGlMsF||&r~7-EIhX(3T&Z{9*S#ktt9XBA$c6s9<$dQ5+iKY(
zyB`;SDchwu`JYkm3eS4Otc1?U6GGn;y{+!aPp<2EnL20Ye5e1tKKA`qHBMhM3M|d8
zOV4_H`COK3MrqBbsXg~wR*UGh7iDd2Z~ULS;ny|ki+eZC-J5i->?`NHYfYQ(E%5Vp
z@O!lTd?w>Faf{C_@3PYF`<Sji(_*pXzTdX;Ag$&1nZL9je)aj<!>=2^x-%g{iJ{=W
X^!y|~)!eGp>p`NPu6{1-oD!M<(I>ZC