This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM62P: Secure Boot keywrite

Part Number: AM62P
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

DMSC Firmware Version 9.2.6-v09.02.06-1-gdf86f (Kool
DMSC Firmware revision 0x9
DMSC ABI revision 3.1

Starting Keywrite  getversioncheck
keys Certificate found: 0x43c18800
Keywriter Debug Response:0x42000000
Error occured...

Hi team,

I am working with the AM62p customer board and need to implement a secure boot. This is the output of my keywite tiboot3.bin. I can still boot the board in emmc and sd card mode, so I think it didn't successfully write to efuse. Can you tell me the possible reasons for this?

Also, my own board uses gpio (via CSL_REG32_WR()) to directly control vpp, and I can test a high output in my own vpp pin.

Thank you for your support.

Best Regards, KONG XIANGXU

  • Hello,

    Could you please share the TIFS logs captured from MAIN_UART1 port?

    Thanks!

  • 0x420002
            0x820024
                    0x4003007
                             0x4400926
                                      0x409031
                                              0x800023
                                                      #
                                                       # Decrypting extensions..
                                                                                #
                                                                                 MPK Options:  0x0
                                                                                                  MEK Options:  0x0
                                                                                                                   MPK Opt P1:  0x0
                                                                                                                                   MPK Opt P2:  0x0
                                                                                                                                                   MEK Opt   :  0x0
                                                                                                                                                                   SMPKH extension programming disabled
                                                                                                                                                                                                       SMEK extension programming disabled
                            EXT OTP extension programming disabled
                                                                  * BCH code & MSV: fe0fac8b
    
                                                                                            KEY CNT extension programming disabled
    
                                                                                                                                  KEY REV extension programming disabled
    
                                                                                                                                                                        SWREV extension programming disabled
    
                                                                                                                                                                                                            FW CFG REV extension programming disabled
    

    Starting Keywriter
    Starting Keywrite
    tca624open
    Enabled VPP
    DMSC Firmware Version 9.2.6-v09.02.06-1-gdf86f (Kool
    DMSC Firmware revision 0x9
    DMSC ABI revision 3.1
    Starting Keywrite  getversioncheck
    keys Certificate found: 0x43c18700
    Keywriter Debug Response:0x42000000
    Error occured...
         

    I try this on ti am62p  official board ,it produce same error  

  • Those are not complete logs as they should look like the following:

    #
    # Decrypting extensions..
    #
    
    MPK Options:  0x0
    MEK Options:  0x0
    MPK Opt P1:  0x0
    MPK Opt P2:  0x0
    MEK Opt   :  0x0
    * SMPKH Part 1 BCH code: e050cadb
    
    * SMPKH Part 2 BCH code: c099dd36
    
    * SMPK Hash (part-1,2):
    
    1f6002b07cd9b0b7c47d9ca8d1aae57b8e8784a12f636b2b760d7d98a18f189700
    
    60dfd0f23e2b0cb10ec7edc7c6edac3d9bdfefe0eddc3fff7fe9ad875195527d00
    
    * SMEK BCH code: a0c6de4e
    
    * SMEK Hash: 92785809a3dfefea57f6bbed642d730ba5d05e601222a72e815bf01ceb3a50f96ab85d282425f684436fabd4c7da624b791da411615035314103cc64e611f532
    
    * BMPKH Part 1 BCH code: c00807d5
    
    * BMPKH Part 2 BCH code: 60311e36
    
    * BMPK Hash (part-1,2):
    
    07b5fd6f33cdba0c745bcc07e50805639713ec517614eac89754da1138d24dac00
    
    5f1600a593b7100f0e1ca3c3a49e59b3622ab0651e08c0ffd2c88b04465cf7c900
    
    * BMEK BCH code: a0da286f
    
    * BMEK Hash: f5fbda1d62b46374de68e763ecd5a72227e7be73ca0d54a6d986ceb784b1bb0d06b6d95a8b399d421e41b7d3e7076220cd3992df255be068bd8924e86ae3a02d
    
    EXT OTP extension disabled
    * BCH code & MSV: fe0fac8b
    
    * KEY CNT: 03030000
    
    * KEY REV: 01010000
    
    SWREV extension disabled
    
    FW CFG REV extension disabled
    
    * KEYWR VERSION:  0x20000
    
    #
    # Programming Keys..
    #
    
    * MSV: 
    [u32] bch + msv:  0x0
    Programmed 2/2 rows successfully
    [u32] bch + msv:  0x8BAC0FFE
    
    * SWREV: 
    [u32] SWREV-SBL:  0x1
    [u32] SWREV-SYSFW  :  0x1
    SWREV extension disabled
    [u32] SWREV-SBL:  0x1
    [u32] SWREV-SYSFW  :  0x1
    
    * FW CFG REV: 
    [u32] SWREV-FW-CFG-REV:  0x1
    SWREV SEC BCFG extension disabled
    [u32] SWREV-FW-CFG-REV:  0x1
    
    * EXT OTP: 
    EXT OTP extension disabled
    
    * BMPKH, BMEK: 
    Programmed 11/11 rows successfully
    Programmed 2/2 rows successfully
    Programmed 11/11 rows successfully
    Programmed 2/2 rows successfully
    Programmed 11/11 rows successfully
    Programmed 2/2 rows successfully
    
    * SMPKH, SMEK: 
    Programmed 11/11 rows successfully
    Programmed 2/2 rows successfully
    Programmed 11/11 rows successfully
    Programmed 2/2 rows successfully
    Programmed 11/11 rows successfully
    Programmed 2/2 rows successfully
    
    * KEYCNT: 
    [u32] keycnt:  0x0
    Programmed 2/2 rows successfully
    [u32] keycnt:  0x2
    
    * KEYREV: 
    [u32] keyrev:  0x0
    Programmed 2/2 rows successfully
    [u32] keyrev:  0x1

  • 0x420002
            0x820024
                    0x4003007
                             0x4400926
                                      0x409031
                                              0x800023
                                                      #
                                                       # Decrypting extensions..
                                                                                #
                                                                                 MPK Options:  0x0
                                                                                                  MEK Options:  0x0
                                                                                                                   MPK Opt P1:  0x0
                                                                                                                                   MPK Opt P2:  0x0
                                                                                                                                                   MEK Opt   :  0x0
                                                                                                                                                                   SMPKH extension programming disabled
                                                                                                                                                                                                       SMEK extension programming disabled
                            EXT OTP extension programming disabled
                                                                  * BCH code & MSV: fe0fac8b
    
                                                                                            KEY CNT extension programming disabled
    
                                                                                                                                  KEY REV extension programming disabled
    
                                                                                                                                                                        SWREV extension programming disabled
    
                                                                                                                                                                                                            FW CFG REV extension programming disabled
    
                                       * KEYWR VERSION:  0x20000
    
                                                                #
                                                                 # Programming Keys..
                                                                                     #
    
                                                                                      * MSV:
                                                                                             [u32] bch + msv:  0x8BAC0FFE
                                                                                                                         Error: override not specified
                                                                                                                                                      debug_response:  0x40000000
                                                                                                                                                                                 Error in programming MSV
                                                                                                                                                                                                         debug_response:  0x42000000
                      [u32] bch + msv:  0x8BAC0FFE
    
                                                  * SWREV:
                                                           [u32] SWREV-SBL:  0x1
                                                                                [u32] SWREV-SYSFW  :  0x1
                                                                                                         SWREV extension programming disabled
                                                                                                                                             [u32] SWREV-SBL:  0x1
                                                                                                                                                                  [u32] SWREV-SYSFW  :  0x1
    
                                                                                                                                                                                           * FW CFG REV:
                                                                                                                                                                                                         [u32] SWREV-FW-CFG-REV:  0x1
                       SWREV SEC BCFG extension programming disabled
                                                                    [u32] SWREV-FW-CFG-REV:  0x1
    
                                                                                                * EXT OTP:
                                                                                                           EXT OTP extension programming disabled
    
                                                                                                                                                 * BMPKH, BMEK:
                                                                                                                                                                BMPKH extension programming disabled
                                                                                                                                                                                                    BMEK extension programming disabled
    
                         * SMPKH, SMEK:
                                        SMPKH extension programming disabled
                                                                            SMEK extension programming disabled
    
                                                                                                               * KEYCNT:
                                                                                                                         [u32] keycnt:  0x0
                                                                                                                                           KEY CNT extension programming disabled
                                                                                                                                                                                 [u32] keycnt:  0x0
    
                                                                                                                                                                                                   * KEYREV:
                                                                                                                                                                                                             [u32] keyrev:  0x0
                 KEY REV extension programming disabled
                                                       [u32] keyrev:  0x0
                                                                         ▒0x420002
                                                                                  0x820024
                                                                                          0x4003007
                                                                                                   0x4400926
                                                                                                            0x409031
                                                                                                                    0x800023
                                                                                                                            #
                                                                                                                             # Decrypting extensions..
                                                                                                                                                      #
                                                                                                                                                       MPK Options:  0x0
                                                                                                                                                                        MEK Options:  0x0
                                                                                                                                                                                         MPK Opt P1:  0x0
                                                                                                                                                                                                         MPK Opt P2:  0x0
           MEK Opt   :  0x0
                           SMPKH extension programming disabled
                                                               SMEK extension programming disabled
                                                                                                  EXT OTP extension programming disabled
                                                                                                                                        * BCH code & MSV: fe0fac8b
    
                                                                                                                                                                  KEY CNT extension programming disabled
    
                                                                                                                                                                                                        KEY REV extension programming disabled
    
                                SWREV extension programming disabled
    
                                                                    FW CFG REV extension programming disabled
    
                                                                                                             * KEYWR VERSION:  0x20000
    
                                                                                                                                      #
                                                                                                                                       # Programming Keys..
                                                                                                                                                           #
    
                                                                                                                                                            * MSV:
                                                                                                                                                                   [u32] bch + msv:  0x8BAC0FFE
                                                                                                                                                                                               Error: override not specified
              debug_response:  0x40000000
                                         Error in programming MSV
                                                                 debug_response:  0x42000000
                                                                                            [u32] bch + msv:  0x8BAC0FFE
    
                                                                                                                        * SWREV:
                                                                                                                                 [u32] SWREV-SBL:  0x1
                                                                                                                                                      [u32] SWREV-SYSFW  :  0x1
                                                                                                                                                                               SWREV extension programming disabled
     [u32] SWREV-SBL:  0x1
                          [u32] SWREV-SYSFW  :  0x1
    
                                                   * FW CFG REV:
                                                                 [u32] SWREV-FW-CFG-REV:  0x1
                                                                                             SWREV SEC BCFG extension programming disabled
                                                                                                                                          [u32] SWREV-FW-CFG-REV:  0x1
    
                                                                                                                                                                      * EXT OTP:
                                                                                                                                                                                 EXT OTP extension programming disabled
    
         * BMPKH, BMEK:
                        BMPKH extension programming disabled
                                                            BMEK extension programming disabled
    
                                                                                               * SMPKH, SMEK:
                                                                                                              SMPKH extension programming disabled
                                                                                                                                                  SMEK extension programming disabled
    
                                                                                                                                                                                     * KEYCNT:
                                                                                                                                                                                               [u32] keycnt:  0x0
                                                                                                                                                                                                                 KEY CNT extension programming disabled
                                         [u32] keycnt:  0x0
    
                                                           * KEYREV:
                                                                     [u32] keyrev:  0x0
                                                                                       KEY REV extension programming disabled
                                                                                                                             [u32] keyrev:  0x0
    
    
       

    Also ,I have to mentioned that both these errors occurs after onetime "Success Programming Keys".

    But both these board can still boot from emmc and sd card mode.Thinking

  • The logs suggest the TIFS failed to program MSV because it was already programmed and the new certificate did not have the override flag to reprogram the MSV.

    Also ,I have to mentioned that both these errors occurs after onetime "Success Programming Keys".

    You might have only programmed the MSV but not the keys and other fields necessary to convert the device to HSSE.

    Please skip programming MSV now and program the keys, keycnt, and keyrev fields.

  • How to skip programming MSV  and program the keys, keycnt, and keyrev fields?

  • Please refer to the "Keywriter Certificate Generation" documentation page (sbl_keywriter/docs/_build_am62px/html/docs_src/Certificate_Generation.html) for the different options to generate the certificate.

  • .. only:: am62px_tag
    
        Keywriter application has been validated with boot modes - **UART**, **OSPI** on |hw|.
    
        .. note::
     
            Keywriter support for dev boot mode will be supported in future releases.
    

    I notice that the docs say it only supports uart and ospi, but I am using SD card (by replacing the tiboot3.bin) to boot keywriter, is it possible this is the reason of the above faliure?

    By the way, I followed the instruction from docs and use the methods below "Single Shot Mode: Program via Single Certificate", but in the end I get the same results.

    If the single shot mode is not  what you mean by skipping programming MSV and programming the keys, keycnt and keyrev fields, can you give me a more detailed solution?

  • I notice that the docs say it only supports uart and ospi, but I am using SD card (by replacing the tiboot3.bin) to boot keywriter, is it possible this is the reason of the above faliure?

    This is not the cause of the issue. The keywriter binary can be booted over any ROM supported boot media.

    If the single shot mode is not  what you mean by skipping programming MSV and programming the keys, keycnt and keyrev fields, can you give me a more detailed solution?

    I meant single shot only but without the MSV option like so:

    ❯ ./gen_keywr_cert.sh -t tifek/SR_10/ti_fek_public.pem -b keys_devel/v15/bmpk.pem --bmek keys_devel/bmek.key -s keys_devel/v15/smpk.pem --smek keys_devel/smek.key --keycnt 2 --keyrev 1
    

    Please note the above command uses the dummy keys. If you have custom keys, you would need to pass the paths to those.

    The certificate generated with this command would convert the SoC to HSSE.

  • $ ./gen_keywr_cert.sh -t tifek/SR_10/ti_fek_public.pem      --sr-sbl 1 --sr-sysfw 1 --sr-sysfw-ovrd --sr-sbl-ovrd --sr-bcfg 1 --sr-bcfg-ovrd     --ext-otp ext_otp_data.bin --ext-otp-indx 0 --ext-otp-size 32     -b keys_devel/v15/bmpk.pem --bmek keys_devel/bmek.key     -s keys_devel/v15/smpk.pem --smek keys_devel/smek.key     --keycnt 2 --keyrev 1
    # Using SWREV_SBL: 0x000000000001
    # Using SWREV_SYSFW: 0x000000000001
    # Using SWREV_SEC_BRDCFG: 0x0000000000000001
    # Using Key Count: 0x00000003
    # Using Key Rev: 0x00000001
    Generating Dual PKCS#1v1.5 signed certificate!!
    GEN: AES256 key generated, since not provided
    # encrypt aes256 key with tifek public part
    # encrypt SMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt smpk-pub hash using aes256 key
    # encrypt smek (sym key) using aes256 key
    # encrypt ext_otp using aes256 key
    # encrypt BMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt bmpk-pub hash using aes256 key
    # encrypt bmek (sym key) using aes256 key
    1668    secondary_cert.bin
    
     I moved the MSV command,but I still get same result.

    And above is the command I used.

  • And above is the command I used.

    You may not want to use the " --ext-otp ext_otp_data.bin --ext-otp-indx 0 --ext-otp-size 32" options as it would program the Extended OTP row 0 with some data which may not what you want.

    In any case, please share the TIFS logs in the case of a failure.

  • 0x420002
            0x820024
                    0x4003007
                             0x4400926
                                      0x409031
                                              0x800023
                                                      #
                                                       # Decrypting extensions..
                                                                                #
                                                                                 MPK Options:  0x0
                                                                                                  MEK Options:  0x0
                                                                                                                   MPK Opt P1:  0x0
                                                                                                                                   MPK Opt P2:  0x0
                                                                                                                                                   MEK Opt   :  0x0
                                                                                                                                                                   SMPKH extension programming disabled
                                                                                                                                                                                                       SMEK extension programming disabled
                            EXT OTP extension programming disabled
                                                                  * BCH code & MSV: fe0fac8b
    
                                                                                            KEY CNT extension programming disabled
    
                                                                                                                                  KEY REV extension programming disabled
    
                                                                                                                                                                        SWREV extension programming disabled
    
                                                                                                                                                                                                            FW CFG REV extension programming disabled
    
                                       * KEYWR VERSION:  0x20000
    
                                                                #
                                                                 # Programming Keys..
                                                                                     #
    
                                                                                      * MSV:
                                                                                             [u32] bch + msv:  0x8BAC0FFE
                                                                                                                         Error: override not specified
                                                                                                                                                      debug_response:  0x40000000
                                                                                                                                                                                 Error in programming MSV
                                                                                                                                                                                                         debug_response:  0x42000000
                      [u32] bch + msv:  0x8BAC0FFE
    
                                                  * SWREV:
                                                           [u32] SWREV-SBL:  0x1
                                                                                [u32] SWREV-SYSFW  :  0x1
                                                                                                         SWREV extension programming disabled
                                                                                                                                             [u32] SWREV-SBL:  0x1
                                                                                                                                                                  [u32] SWREV-SYSFW  :  0x1
    
                                                                                                                                                                                           * FW CFG REV:
                                                                                                                                                                                                         [u32] SWREV-FW-CFG-REV:  0x1
                       SWREV SEC BCFG extension programming disabled
                                                                    [u32] SWREV-FW-CFG-REV:  0x1
    
                                                                                                * EXT OTP:
                                                                                                           EXT OTP extension programming disabled
    
                                                                                                                                                 * BMPKH, BMEK:
                                                                                                                                                                BMPKH extension programming disabled
                                                                                                                                                                                                    BMEK extension programming disabled
    
                         * SMPKH, SMEK:
                                        SMPKH extension programming disabled
                                                                            SMEK extension programming disabled
    
                                                                                                               * KEYCNT:
                                                                                                                         [u32] keycnt:  0x0
                                                                                                                                           KEY CNT extension programming disabled
                                                                                                                                                                                 [u32] keycnt:  0x0
    
                                                                                                                                                                                                   * KEYREV:
                                                                                                                                                                                                             [u32] keyrev:  0x0
                 KEY REV extension programming disabled
                                                       [u32] keyrev:  0x0
    
    

    mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/scripts/cert_gen/am62px$ ./gen_keywr_cert.sh -t tifek/SR_10/ti_fek_public.pem -b keys_devel/v15/bmpk.pem --bmek keys_devel/bmek.key -s keys_devel/v15/smpk.pem --smek keys_devel/smek.key --keycnt 2 --keyrev 1
    # Using Key Count: 0x00000003
    # Using Key Rev: 0x00000001
    Generating Dual PKCS#1v1.5 signed certificate!!
    GEN: AES256 key generated, since not provided
    # encrypt aes256 key with tifek public part
    # encrypt SMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt smpk-pub hash using aes256 key
    # encrypt smek (sym key) using aes256 key
    # encrypt BMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt bmpk-pub hash using aes256 key
    # encrypt bmek (sym key) using aes256 key
    1668	secondary_cert.bin
    5383	primary_cert.bin
    7051	../x509cert/final_certificate.bin
    # SHA512 Hashes of keys are stored in verify_hash.csv for reference..

    /mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/scripts/cert_gen/x509cert

    By the way, there is a strange thing that x509cert folder is generated in above path,but I followed the instruction from the OTP keywriter guide "This will generate a C header file called keycert.h Make sure keycert.h is placed inside script/x509cert folder, as it will need to be included for the build" and copy the whole folder to mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/scripts/x509cert. 

  • Those logs suggests that the MSV is still being programmed. This means the keywriter binary is not generated with the certificate where the MSV option is skipped.

    Did you build the keywriter after the certificate generation?

    Please note, the C header file (keycert.h) is automatically generated at the expected location (source/security/sbl_keywriter/keywr_bin/am62px/keycert.h) as part of the certificate generation command. So, you only need to generate the certificate and just build the keywriter like shown below:

    ❯ pwd
    /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/scripts/cert_gen/am62px
    ❯ ./gen_keywr_cert.sh -t tifek/SR_10/ti_fek_public.pem -b keys_devel/v15/bmpk.pem --bmek keys_devel/bmek.key -s keys_devel/v15/smpk.pem --smek keys_devel/smek.key --keycnt 2 --keyrev 1
    # Using Key Count: 0x00000003
    # Using Key Rev: 0x00000001
    Generating Dual PKCS#1v1.5 signed certificate!!
    GEN: AES256 key generated, since not provided
    # encrypt aes256 key with tifek public part
    # encrypt SMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt smpk-pub hash using aes256 key
    # encrypt smek (sym key) using aes256 key
    # encrypt BMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt bmpk-pub hash using aes256 key
    # encrypt bmek (sym key) using aes256 key
    1668    secondary_cert.bin
    5383    primary_cert.bin
    7051    ../x509cert/final_certificate.bin
    # SHA512 Hashes of keys are stored in verify_hash.csv for reference..
    ❯ cd ../../../../sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang
    ❯ make -s PROFILE=debug clean all
    Cleaning: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out ...
    Generating SysConfig files ...
    Running script...
    Validating...
    Generating Code (example.syscfg)...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_dpl_config.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_dpl_config.h...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_drivers_config.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_drivers_config.h...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_drivers_open_close.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_drivers_open_close.h...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_pinmux_config.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_power_clock_config.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_board_config.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_board_config.h...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_board_open_close.c...
    Writing /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_board_open_close.h...
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: ../main.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: ../keywriter_utils.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: ../board.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_drivers_config.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_drivers_open_close.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_board_config.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_board_open_close.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_dpl_config.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_pinmux_config.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_power_clock_config.c
    .
    Linking: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out ...
    Linking: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out Done !!!
    .
    Boot image: am62px:wkup-r5fss0-0:nortos:ti-arm-clang /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/sbl_keywriter.debug.hs_fs.tiimage ...
    Boot image: am62px:wkup-r5fss0-0:nortos:ti-arm-clang /home/p-shivhare/ti/mcu_plus_sdk/am62p/09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/sbl_keywriter.debug.hs_fs.tiimage Done !!!
    .
    

  • mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang$ make -sj clean PROFILE=debug
    Cleaning: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out ...
    mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang$ make -sj PROFILE=debug
    Generating SysConfig files ...
    Running script...
    Validating...
    Generating Code (example.syscfg)...
    Writing /home/a/ti/mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_dpl_config.c...
    Writing /home/a/ti/mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_dpl_config.h...
    Writing /home/a/ti/mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_drivers_config.c...
    Writing /home/a/ti/mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_drivers_config.h...
    Writing /home/a/ti/mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_drivers_open_close.c...
    Writing /home/a/ti/mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_drivers_open_close.h...
    Writing /home/a/ti/mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_pinmux_config.c...
    Writing /home/a/ti/mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_power_clock_config.c...
    Writing /home/a/ti/mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_board_config.c...
    Writing /home/a/ti/mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_board_config.h...
    Writing /home/a/ti/mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_board_open_close.c...
    Writing /home/a/ti/mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/generated/ti_board_open_close.h...
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: ../main.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: ../keywriter_utils.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: ../board.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_drivers_config.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_drivers_open_close.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_board_config.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_board_open_close.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_dpl_config.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_pinmux_config.c
    Compiling: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out: generated/ti_power_clock_config.c
    .
    Linking: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out ...
    Linking: am62px:wkup-r5fss0-0:nortos:ti-arm-clang sbl_keywriter.debug.out Done !!!
    .
    Boot image: am62px:wkup-r5fss0-0:nortos:ti-arm-clang /home/a/ti/mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/sbl_keywriter.debug.hs_fs.tiimage ...
    Boot image: am62px:wkup-r5fss0-0:nortos:ti-arm-clang /home/a/ti/mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/ti-arm-clang/sbl_keywriter.debug.hs_fs.tiimage Done !!!

    #define KEYCERT_SIZE_IN_BYTES (7051U)
    
    #define KEYCERT { \
        0x30U, 0x82U, 0x06U, 0x80U, 0x30U, 0x82U, 0x04U, 0x68U, 0xa0U, 0x03U, 0x02U, 0x01U, 0x02U, 0x02U, 0x14U, 0x7aU,  \
        0xe7U, 0x13U, 0xd4U, 0x2eU, 0x9aU, 0x73U, 0xddU, 0xf1U, 0xe0U, 0x2dU, 0x77U, 0xa5U, 0xb8U, 0x7fU, 0x03U, 0xb3U,  \
        0xa9U, 0x00U, 0x99U, 0x30U, 0x0dU, 0x06U, 0x09U, 0x2aU, 0x86U, 0x48U, 0x86U, 0xf7U, 0x0dU, 0x01U, 0x01U, 0x0dU,  \
        0x05U, 0x00U, 0x30U, 0x81U, 0xbfU, 0x31U, 0x0bU, 0x30U, 0x09U, 0x06U, 0x03U, 0x55U, 0x04U, 0x06U, 0x13U, 0x02U,  \
        0x6fU, 0x52U, 0x31U, 0x0bU, 0x30U, 0x09U, 0x06U, 0x03U, 0x55U, 0x04U, 0x08U, 0x0cU, 0x02U, 0x72U, 0x78U, 0x31U,  \
        0x16U, 0x30U, 0x14U, 0x06U, 0x03U, 0x55U, 0x04U, 0x07U, 0x0cU, 0x0dU, 0x67U, 0x51U, 0x45U, 0x38U, 0x34U, 0x33U,  \
        0x79U, 0x51U, 0x56U, 0x30U, 0x73U, 0x61U, 0x67U, 0x31U, 0x2bU, 0x30U, 0x29U, 0x06U, 0x03U, 0x55U, 0x04U, 0x0aU,  \
        0x0cU, 0x22U, 0x64U, 0x71U, 0x68U, 0x47U, 0x59U, 0x41U, 0x51U, 0x32U, 0x59U, 0x34U, 0x67U, 0x46U, 0x66U, 0x43U,  \
        0x71U, 0x30U, 0x74U, 0x31U, 0x79U, 0x41U, 0x42U, 0x43U, 0x59U, 0x78U, 0x65U, 0x78U, 0x39U, 0x65U, 0x41U, 0x78U,  \
        0x74U, 0x37U, 0x31U, 0x66U, 0x31U, 0x11U, 0x30U, 0x0fU, 0x06U, 0x03U, 0x55U, 0x04U, 0x0bU, 0x0cU, 0x08U, 0x61U,  \
        0x38U, 0x37U, 0x52U, 0x42U, 0x33U, 0x35U, 0x57U, 0x31U, 0x18U, 0x30U, 0x16U, 0x06U, 0x03U, 0x55U, 0x04U, 0x03U,  \
        0x0cU, 0x0fU, 0x78U, 0x30U, 0x46U, 0x53U, 0x71U, 0x47U, 0x54U, 0x50U, 0x57U, 0x62U, 0x47U, 0x70U, 0x75U, 0x69U,  \
        0x56U, 0x31U, 0x31U, 0x30U, 0x2fU, 0x06U, 0x09U, 0x2aU, 0x86U, 0x48U, 0x86U, 0xf7U, 0x0dU, 0x01U, 0x09U, 0x01U,  \
        0x16U, 0x22U, 0x6bU, 0x46U, 0x70U, 0x35U, 0x75U, 0x47U, 0x63U, 0x67U, 0x57U, 0x58U, 0x78U, 0x63U, 0x66U, 0x78U,  \
        0x69U, 0x40U, 0x76U, 0x73U, 0x48U, 0x73U, 0x39U, 0x43U, 0x39U, 0x71U, 0x51U, 0x57U, 0x47U, 0x72U, 0x42U, 0x73U,  \
        0x2eU, 0x63U, 0x6fU, 0x6dU, 0x30U, 0x1eU, 0x17U, 0x0dU, 0x32U, 0x35U, 0x30U, 0x34U, 0x31U, 0x31U, 0x30U, 0x31U,  \
        0x32U, 0x34U, 0x31U, 0x31U, 0x5aU, 0x17U, 0x0dU, 0x32U, 0x35U, 0x30U, 0x35U, 0x31U, 0x31U, 0x30U, 0x31U, 0x32U,  \
        0x34U, 0x31U, 0x31U, 0x5aU, 0x30U, 0x81U, 0xbfU, 0x31U, 0x0bU, 0x30U, 0x09U, 0x06U, 0x03U, 0x55U, 0x04U, 0x06U,  \
        0x13U, 0x02U, 0x6fU, 0x52U, 0x31U, 0x0bU, 0x30U, 0x09U, 0x06U, 0x03U, 0x55U, 0x04U, 0x08U, 0x0cU, 0x02U, 0x72U,  \
        0x78U, 0x31U, 0x16U, 0x30U, 0x14U, 0x06U, 0x03U, 0x55U, 0x04U, 0x07U, 0x0cU, 0x0dU, 0x67U, 0x51U, 0x45U, 0x38U,  \
        0x34U, 0x33U, 0x79U, 0x51U, 0x56U, 0x30U, 0x73U, 0x61U, 0x67U, 0x31U, 0x2bU, 0x30U, 0x29U, 0x06U, 0x03U, 0x55U,  \
        0x04U, 0x0aU, 0x0cU, 0x22U, 0x64U, 0x71U, 0x68U, 0x47U, 0x59U, 0x41U, 0x51U, 0x32U, 0x59U, 0x34U, 0x67U, 0x46U,  \
        0x66U, 0x43U, 0x71U, 0x30U, 0x74U, 0x31U, 0x79U, 0x41U, 0x42U, 0x43U, 0x59U, 0x78U, 0x65U, 0x78U, 0x39U, 0x65U,  \
        0x41U, 0x78U, 0x74U, 0x37U, 0x31U, 0x66U, 0x31U, 0x11U, 0x30U, 0x0fU, 0x06U, 0x03U, 0x55U, 0x04U, 0x0bU, 0x0cU,  \
        0x08U, 0x61U, 0x38U, 0x37U, 0x52U, 0x42U, 0x33U, 0x35U, 0x57U, 0x31U, 0x18U, 0x30U, 0x16U, 0x06U, 0x03U, 0x55U,  \
        0x04U, 0x03U, 0x0cU, 0x0fU, 0x78U, 0x30U, 0x46U, 0x53U, 0x71U, 0x47U, 0x54U, 0x50U, 0x57U, 0x62U, 0x47U, 0x70U,  \
        0x75U, 0x69U, 0x56U, 0x31U, 0x31U, 0x30U, 0x2fU, 0x06U, 0x09U, 0x2aU, 0x86U, 0x48U, 0x86U, 0xf7U, 0x0dU, 0x01U,  \
        0x09U, 0x01U, 0x16U, 0x22U, 0x6bU, 0x46U, 0x70U, 0x35U, 0x75U, 0x47U, 0x63U, 0x67U, 0x57U, 0x58U, 0x78U, 0x63U,  \
        0x66U, 0x78U, 0x69U, 0x40U, 0x76U, 0x73U, 0x48U, 0x73U, 0x39U, 0x43U, 0x39U, 0x71U, 0x51U, 0x57U, 0x47U, 0x72U,  \
        0x42U, 0x73U, 0x2eU, 0x63U, 0x6fU, 0x6dU, 0x30U, 0x82U, 0x02U, 0x22U, 0x30U, 0x0dU, 0x06U, 0x09U, 0x2aU, 0x86U,  \
        0x48U, 0x86U, 0xf7U, 0x0dU, 0x01U, 0x01U, 0x01U, 0x05U, 0x00U, 0x03U, 0x82U, 0x02U, 0x0fU, 0x00U, 0x30U, 0x82U,  \
        0x02U, 0x0aU, 0x02U, 0x82U, 0x02U, 0x01U, 0x00U, 0xf4U, 0x62U, 0x8dU, 0x8bU, 0x46U, 0xceU, 0x38U, 0x04U, 0x36U,  \
        0x93U, 0xe1U, 0x88U, 0x97U, 0x1bU, 0x4aU, 0x8aU, 0xdbU, 0x02U, 0x3eU, 0xc0U, 0x6fU, 0x6bU, 0x96U, 0xcaU, 0xdbU,  \
        0x95U, 0x19U, 0x02U, 0x29U, 0x78U, 0x23U, 0xc5U, 0xe4U, 0xdeU, 0x1cU, 0xa7U, 0xb6U, 0xb6U, 0x39U, 0x91U, 0xe3U,  \
        0x43U, 0x68U, 0x16U, 0x50U, 0x1aU, 0x12U, 0x6bU, 0x2cU, 0xc5U, 0x01U, 0x43U, 0xddU, 0x6fU, 0x37U, 0x21U, 0x24U,  \
        0x78U, 0x45U, 0xc5U, 0xdfU, 0xc9U, 0x2dU, 0x97U, 0xa6U, 0xd0U, 0x3cU, 0xf6U, 0x21U, 0x57U, 0x2eU, 0xbeU, 0x02U,  \
        0x17U, 0x50U, 0xc3U, 0x10U, 0xefU, 0xc7U, 0xa3U, 0x45U, 0x86U, 0x3aU, 0x5fU, 0x86U, 0x33U, 0xa2U, 0x9cU, 0x97U,  \
        0x38U, 0x0bU, 0xcbU, 0xdfU, 0x30U, 0xd3U, 0xc0U, 0xd5U, 0xf2U, 0x3cU, 0x81U, 0x41U, 0xc1U, 0xfdU, 0x29U, 0x16U,  \
        0x49U, 0xa0U, 0xd9U, 0x73U, 0xb6U, 0x27U, 0xe1U, 0x17U, 0x87U, 0xc8U, 0x07U, 0x15U, 0x20U, 0x4cU, 0x9aU, 0xebU,  \
        0xe8U, 0x04U, 0x25U, 0x9aU, 0xffU, 0x81U, 0xd3U, 0xcfU, 0xbaU, 0x35U, 0x9fU, 0xbeU, 0x0aU, 0x04U, 0x38U, 0xbbU,  \
        0xe8U, 0xa1U, 0x6eU, 0x1eU, 0xf0U, 0xdcU, 0x5fU, 0xfdU, 0x4dU, 0x7fU, 0xdcU, 0xddU, 0x53U, 0x5bU, 0x79U, 0xbcU,  \
        0xc5U, 0x35U, 0xb3U, 0x22U, 0xe0U, 0x2cU, 0x59U, 0x56U, 0x41U, 0xfbU, 0x5fU, 0xe7U, 0xd6U, 0x4fU, 0x68U, 0xd4U,  \
        0x36U, 0xadU, 0x8cU, 0xcdU, 0x2eU, 0xcbU, 0xebU, 0x80U, 0x8fU, 0x10U, 0xdfU, 0xfbU, 0x5cU, 0x24U, 0xf5U, 0x2cU,  \
        0xe2U, 0xbdU, 0x62U, 0x29U, 0x02U, 0x5cU, 0xc5U, 0x48U, 0xcdU, 0x02U, 0x85U, 0x65U, 0x58U, 0xc8U, 0x99U, 0x13U,  \
        0x18U, 0xa2U, 0x9fU, 0xa6U, 0xf5U, 0xf1U, 0x80U, 0x6dU, 0x11U, 0x61U, 0x7eU, 0xb4U, 0x7aU, 0x99U, 0xc0U, 0x36U,  \
        0x5bU, 0xd6U, 0xc3U, 0x25U, 0x15U, 0xcfU, 0x86U, 0x77U, 0xdfU, 0x21U, 0xcaU, 0x15U, 0x02U, 0xedU, 0xe2U, 0xa5U,  \
        0x3dU, 0xb4U, 0xc3U, 0x42U, 0x04U, 0x9bU, 0x93U, 0x73U, 0x05U, 0x40U, 0x67U, 0xc8U, 0xe9U, 0xf3U, 0x32U, 0x35U,  \
        0xcaU, 0x97U, 0xeeU, 0x3fU, 0x12U, 0x22U, 0xcfU, 0x68U, 0xc0U, 0x0aU, 0x6eU, 0xbcU, 0xdeU, 0xf4U, 0x1fU, 0x81U,  \
        0xaaU, 0x67U, 0x9aU, 0x8fU, 0x63U, 0x0dU, 0xa3U, 0x11U, 0x5aU, 0x7eU, 0x72U, 0xccU, 0x36U, 0xe1U, 0xccU, 0x8cU,  \
        0x22U, 0x2eU, 0x85U, 0x67U, 0xe9U, 0x70U, 0xb8U, 0xbfU, 0xa1U, 0x8bU, 0x52U, 0xb0U, 0xe6U, 0x34U, 0xbcU, 0xdcU,  \
        0x5fU, 0x9aU, 0xb7U, 0x0dU, 0xc4U, 0x69U, 0x3dU, 0x83U, 0x90U, 0x2cU, 0x06U, 0x80U, 0x97U, 0x95U, 0x4aU, 0xd1U,  \
        0x5eU, 0x0fU, 0xfdU, 0x8bU, 0xfeU, 0x51U, 0xc3U, 0x12U, 0x89U, 0x3cU, 0x1cU, 0x02U, 0x30U, 0xdcU, 0xe9U, 0x0bU,  \
        0x26U, 0xc5U, 0x23U, 0xecU, 0x2cU, 0xacU, 0xeeU, 0xfeU, 0x53U, 0x6aU, 0xe5U, 0x50U, 0x86U, 0xf4U, 0x70U, 0x03U,  \
        0xd9U, 0x75U, 0x0dU, 0xb8U, 0xa3U, 0x55U, 0x66U, 0x82U, 0x51U, 0xc9U, 0x3dU, 0x67U, 0xe3U, 0x38U, 0x5eU, 0x9dU,  \
        0x80U, 0x37U, 0x60U, 0x84U, 0x54U, 0xe9U, 0x4eU, 0x51U, 0x90U, 0x98U, 0xddU, 0xf4U, 0x52U, 0x45U, 0xe2U, 0x1fU,  \
        0xfaU, 0x9fU, 0x70U, 0x71U, 0xb5U, 0x78U, 0x79U, 0xdeU, 0xd4U, 0x08U, 0x49U, 0x8aU, 0x01U, 0x07U, 0x21U, 0x8bU,  \
        0x0cU, 0xbeU, 0xbdU, 0xaaU, 0xa2U, 0x1eU, 0x46U, 0x83U, 0x3cU, 0x09U, 0x35U, 0xd9U, 0x7bU, 0xfbU, 0xc1U, 0x11U,  \
        0xc5U, 0x30U, 0xf2U, 0x01U, 0x38U, 0xcbU, 0x29U, 0x0cU, 0x22U, 0x91U, 0x4dU, 0xb3U, 0xbeU, 0x97U, 0xe3U, 0xf5U,  \
        0x6dU, 0xfcU, 0xabU, 0x64U, 0x60U, 0xfaU, 0x57U, 0x53U, 0xe5U, 0x44U, 0xa9U, 0xe7U, 0x16U, 0x65U, 0x80U, 0xa6U,  \
        0xbcU, 0xa0U, 0xb5U, 0xbcU, 0x38U, 0xeaU, 0x59U, 0xf0U, 0x60U, 0x6aU, 0xe9U, 0x85U, 0x1dU, 0x8dU, 0xdeU, 0x38U,  \
        0x23U, 0x07U, 0x06U, 0xb9U, 0x0aU, 0xe5U, 0x46U, 0x51U, 0xebU, 0x04U, 0x9eU, 0xfaU, 0x54U, 0x3dU, 0x52U, 0x60U,  \
        0x74U, 0x25U, 0x50U, 0xffU, 0x8fU, 0x8fU, 0x53U, 0x19U, 0xe3U, 0x2dU, 0x0cU, 0x50U, 0x2dU, 0x88U, 0x22U, 0xadU,  \
        0xd0U, 0xe1U, 0x9cU, 0xe7U, 0x1eU, 0x5dU, 0x9aU, 0xe1U, 0xfaU, 0x6cU, 0x66U, 0x1dU, 0xa0U, 0x8cU, 0xaeU, 0xd0U,  \
        0xafU, 0xb9U, 0x6bU, 0x19U, 0xabU, 0xaeU, 0xbfU, 0x02U, 0x03U, 0x01U, 0x00U, 0x01U, 0xa3U, 0x72U, 0x30U, 0x70U,  \
        0x30U, 0x0cU, 0x06U, 0x03U, 0x55U, 0x1dU, 0x13U, 0x04U, 0x05U, 0x30U, 0x03U, 0x01U, 0x01U, 0xffU, 0x30U, 0x60U,  \
        0x06U, 0x09U, 0x2bU, 0x06U, 0x01U, 0x04U, 0x01U, 0x82U, 0x26U, 0x01U, 0x22U, 0x04U, 0x53U, 0x30U, 0x51U, 0x06U,  \
        0x09U, 0x60U, 0x86U, 0x48U, 0x01U, 0x65U, 0x03U, 0x04U, 0x02U, 0x03U, 0x04U, 0x40U, 0x9aU, 0xd5U, 0xd7U, 0x86U,  \
        0xf5U, 0xd9U, 0x50U, 0xfeU, 0x18U, 0x07U, 0xd0U, 0xb3U, 0x43U, 0xf3U, 0xa9U, 0x2cU, 0xf8U, 0xe9U, 0xb6U, 0x6aU,  \
        0xcfU, 0xbdU, 0x4aU, 0x6bU, 0x83U, 0x66U, 0xa1U, 0x36U, 0x4bU, 0x45U, 0x8fU, 0x5dU, 0xd0U, 0x8aU, 0x2cU, 0x1bU,  \
        0xe3U, 0x73U, 0x64U, 0xa1U, 0x99U, 0x89U, 0x90U, 0xb8U, 0x7dU, 0xfeU, 0x29U, 0x6fU, 0x6dU, 0x00U, 0x4eU, 0xb4U,  \
        0x3aU, 0xcdU, 0x69U, 0x5cU, 0xc6U, 0x6fU, 0x74U, 0xf4U, 0xc2U, 0x42U, 0x9aU, 0xcdU, 0x02U, 0x02U, 0x15U, 0x07U,  \
        0x30U, 0x0dU, 0x06U, 0x09U, 0x2aU, 0x86U, 0x48U, 0x86U, 0xf7U, 0x0dU, 0x01U, 0x01U, 0x0dU, 0x05U, 0x00U, 0x03U,  \
        0x82U, 0x02U, 0x01U, 0x00U, 0xdeU, 0x89U, 0xa6U, 0xfdU, 0xb8U, 0x87U, 0x8aU, 0x40U, 0x40U, 0x74U, 0x14U, 0x07U,  \
        0x08U, 0x4bU, 0xdcU, 0xeaU, 0xd3U, 0x04U, 0xbcU, 0x3dU, 0x56U, 0xdbU, 0xcdU, 0x09U, 0x56U, 0xd7U, 0xecU, 0xa5U,  \
        0x29U, 0x59U, 0x62U, 0x62U, 0x8eU, 0xeaU, 0x7bU, 0x8eU, 0x1cU, 0x9cU, 0xf2U, 0xa4U, 0x6eU, 0x2eU, 0x67U, 0x0bU,  \
        0x52U, 0x43U, 0x74U, 0xa7U, 0xf5U, 0x13U, 0xf9U, 0x00U, 0x78U, 0x19U, 0x3fU, 0x89U, 0x8cU, 0x94U, 0x04U, 0xfdU,  \
        0x03U, 0x2fU, 0x95U, 0x10U, 0x63U, 0xdeU, 0x8dU, 0x7bU, 0x64U, 0xcdU, 0xa4U, 0xe3U, 0x01U, 0x08U, 0xecU, 0x55U,  \
        0xa1U, 0x6eU, 0x55U, 0x93U, 0x8dU, 0xa6U, 0x53U, 0x37U, 0x17U, 0xbaU, 0x66U, 0x68U, 0xdfU, 0xeeU, 0x10U, 0xd3U,  \
        0xc2U, 0x07U, 0xa8U, 0x44U, 0xc6U, 0xfaU, 0x58U, 0x1fU, 0x73U, 0xf2U, 0x36U, 0xd3U, 0xbcU, 0x10U, 0xfeU, 0xecU,  \
        0xcfU, 0xdfU, 0x8eU, 0x67U, 0x32U, 0x82U, 0x88U, 0xcbU, 0x79U, 0x7bU, 0x9eU, 0x49U, 0x56U, 0x0fU, 0xdbU, 0x31U,  \
        0x25U, 0xafU, 0xf4U, 0x20U, 0xe2U, 0x6bU, 0x8dU, 0x66U, 0x16U, 0x45U, 0xa4U, 0x86U, 0x72U, 0x17U, 0xb9U, 0x66U,  \
        0x4bU, 0x29U, 0xefU, 0x58U, 0xd2U, 0x99U, 0x2bU, 0x10U, 0x18U, 0x31U, 0xffU, 0x1dU, 0xe8U, 0xc9U, 0xaaU, 0x9fU,  \
        0xeeU, 0x03U, 0x97U, 0x7dU, 0xc7U, 0x6dU, 0x8cU, 0x38U, 0x86U, 0x3aU, 0xc6U, 0x46U, 0xaeU, 0x6cU, 0x2fU, 0x05U,  \
        0x9aU, 0x42U, 0xadU, 0xb2U, 0x27U, 0x8fU, 0xc8U, 0x28U, 0xcbU, 0x2bU, 0x1cU, 0x99U, 0x88U, 0x8eU, 0x07U, 0x76U,  \
        0xacU, 0xb8U, 0xcbU, 0xe2U, 0x5aU, 0x3fU, 0x23U, 0xdcU, 0xdbU, 0x9aU, 0x68U, 0xdfU, 0xb9U, 0x4dU, 0xb4U, 0x3bU,  \
        0x4fU, 0x7aU, 0xfdU, 0x1aU, 0x0eU, 0x3dU, 0xdeU, 0xdaU, 0x3aU, 0x7aU, 0x9eU, 0xa8U, 0x8cU, 0x0aU, 0xfcU, 0xd3U,  \
        0xe7U, 0xa7U, 0x53U, 0xa2U, 0x9dU, 0x98U, 0x1fU, 0x45U, 0x8cU, 0x59U, 0xa0U, 0x53U, 0xb7U, 0xc4U, 0xf0U, 0x94U,  \
        0xd9U, 0x22U, 0xbeU, 0x6bU, 0x7bU, 0x3dU, 0x25U, 0x51U, 0xe8U, 0x85U, 0x32U, 0xccU, 0x20U, 0x41U, 0xeaU, 0x59U,  \
        0xdcU, 0x55U, 0xcdU, 0xbcU, 0xdbU, 0x00U, 0x1cU, 0x83U, 0x6fU, 0xf2U, 0x26U, 0x1aU, 0xd9U, 0xf2U, 0xb2U, 0xcfU,  \
        0x46U, 0x10U, 0x5dU, 0x1eU, 0xd9U, 0x4aU, 0x01U, 0x6cU, 0xd7U, 0xf9U, 0x94U, 0x71U, 0x12U, 0xf3U, 0x69U, 0x1eU,  \
        0xa8U, 0x20U, 0x2fU, 0x74U, 0xeeU, 0x0aU, 0x9bU, 0x44U, 0xe0U, 0x35U, 0xd1U, 0x4cU, 0x17U, 0x6eU, 0x15U, 0x90U,  \
        0xb5U, 0xfcU, 0xe2U, 0xf5U, 0x52U, 0xd4U, 0xd3U, 0x99U, 0x5aU, 0x32U, 0x98U, 0xf3U, 0x96U, 0x8bU, 0xa1U, 0x6dU,  \
        0xddU, 0x78U, 0xf9U, 0x78U, 0xcaU, 0x86U, 0x19U, 0xc5U, 0x1dU, 0xd5U, 0x78U, 0x74U, 0x4bU, 0x12U, 0x3dU, 0x31U,  \
        0x45U, 0x4aU, 0x50U, 0xfcU, 0xc2U, 0x28U, 0x7aU, 0x4cU, 0x91U, 0xa2U, 0x7aU, 0x06U, 0x5bU, 0x6dU, 0x9bU, 0xb8U,  \
        0xf3U, 0x1eU, 0x7dU, 0x96U, 0x2bU, 0x37U, 0x61U, 0x5fU, 0x1fU, 0xaeU, 0x4bU, 0x2cU, 0x9dU, 0xffU, 0x9aU, 0xc5U,  \
        0x61U, 0x0dU, 0xcfU, 0x03U, 0x69U, 0xadU, 0x0dU, 0x3dU, 0xdbU, 0x4eU, 0x7aU, 0xa3U, 0xfeU, 0xe8U, 0x11U, 0x2eU,  \
        0xfdU, 0xafU, 0x13U, 0xe6U, 0xebU, 0x3fU, 0xafU, 0x3dU, 0xa1U, 0xf5U, 0x77U, 0xf2U, 0x5cU, 0xa3U, 0xa8U, 0x17U,  \
        0xc0U, 0xa7U, 0x7cU, 0x9aU, 0x44U, 0xfeU, 0xe7U, 0xffU, 0x06U, 0xeaU, 0x2cU, 0x02U, 0x24U, 0x4aU, 0x8cU, 0xf9U,  \
        0xdbU, 0xfdU, 0x7dU, 0x3bU, 0x25U, 0x30U, 0x31U, 0xf4U, 0x8fU, 0x07U, 0xdaU, 0xe8U, 0x3cU, 0x4aU, 0xabU, 0x9eU,  \
        0x41U, 0x11U, 0xdcU, 0x6fU, 0xd1U, 0xa2U, 0xe2U, 0xcfU, 0x79U, 0x0eU, 0x59U, 0x08U, 0x07U, 0x24U, 0x47U, 0x2eU,  \
        0x1eU, 0xbfU, 0xc0U, 0x44U, 0x30U, 0xbfU, 0x4cU, 0xc4U, 0x92U, 0x77U, 0xe4U, 0x2aU, 0xe3U, 0x6eU, 0x01U, 0x67U,  \
        0xc9U, 0xf1U, 0x62U, 0x05U, 0x05U, 0xe8U, 0xd7U, 0xcaU, 0x07U, 0x9cU, 0x4bU, 0xe8U, 0x46U, 0xd4U, 0xbcU, 0x89U,  \
        0xf8U, 0x50U, 0x4bU, 0xa8U, 0xe0U, 0x28U, 0x4cU, 0x6dU, 0x8dU, 0x52U, 0x85U, 0x7fU, 0x6aU, 0x8aU, 0x69U, 0x0fU,  \
        0x49U, 0xc0U, 0x49U, 0xa8U, 0x10U, 0x9eU, 0xe2U, 0x62U, 0xb9U, 0xb7U, 0xa4U, 0x21U, 0xc2U, 0x86U, 0x8eU, 0xe9U,  \
        0x70U, 0xb9U, 0x03U, 0x35U, 0x30U, 0x82U, 0x15U, 0x03U, 0x30U, 0x82U, 0x12U, 0xebU, 0xa0U, 0x03U, 0x02U, 0x01U,  \
        0x02U, 0x02U, 0x14U, 0x36U, 0xeeU, 0xc3U, 0x31U, 0xc1U, 0xfbU, 0x73U, 0x92U, 0xc3U, 0x69U, 0x35U, 0x26U, 0x26U,  \
        0x6aU, 0x9cU, 0x40U, 0xe1U, 0x93U, 0x8eU, 0x36U, 0x30U, 0x0dU, 0x06U, 0x09U, 0x2aU, 0x86U, 0x48U, 0x86U, 0xf7U,  \
        0x0dU, 0x01U, 0x01U, 0x0dU, 0x05U, 0x00U, 0x30U, 0x81U, 0xbfU, 0x31U, 0x0bU, 0x30U, 0x09U, 0x06U, 0x03U, 0x55U,  \
        0x04U, 0x06U, 0x13U, 0x02U, 0x6fU, 0x52U, 0x31U, 0x0bU, 0x30U, 0x09U, 0x06U, 0x03U, 0x55U, 0x04U, 0x08U, 0x0cU,  \
        0x02U, 0x72U, 0x78U, 0x31U, 0x16U, 0x30U, 0x14U, 0x06U, 0x03U, 0x55U, 0x04U, 0x07U, 0x0cU, 0x0dU, 0x67U, 0x51U,  \
        0x45U, 0x38U, 0x34U, 0x33U, 0x79U, 0x51U, 0x56U, 0x30U, 0x73U, 0x61U, 0x67U, 0x31U, 0x2bU, 0x30U, 0x29U, 0x06U,  \
        0x03U, 0x55U, 0x04U, 0x0aU, 0x0cU, 0x22U, 0x64U, 0x71U, 0x68U, 0x47U, 0x59U, 0x41U, 0x51U, 0x32U, 0x59U, 0x34U,  \
        0x67U, 0x46U, 0x66U, 0x43U, 0x71U, 0x30U, 0x74U, 0x31U, 0x79U, 0x41U, 0x42U, 0x43U, 0x59U, 0x78U, 0x65U, 0x78U,  \
        0x39U, 0x65U, 0x41U, 0x78U, 0x74U, 0x37U, 0x31U, 0x66U, 0x31U, 0x11U, 0x30U, 0x0fU, 0x06U, 0x03U, 0x55U, 0x04U,  \
        0x0bU, 0x0cU, 0x08U, 0x61U, 0x38U, 0x37U, 0x52U, 0x42U, 0x33U, 0x35U, 0x57U, 0x31U, 0x18U, 0x30U, 0x16U, 0x06U,  \
        0x03U, 0x55U, 0x04U, 0x03U, 0x0cU, 0x0fU, 0x78U, 0x30U, 0x46U, 0x53U, 0x71U, 0x47U, 0x54U, 0x50U, 0x57U, 0x62U,  \
        0x47U, 0x70U, 0x75U, 0x69U, 0x56U, 0x31U, 0x31U, 0x30U, 0x2fU, 0x06U, 0x09U, 0x2aU, 0x86U, 0x48U, 0x86U, 0xf7U,  \
        0x0dU, 0x01U, 0x09U, 0x01U, 0x16U, 0x22U, 0x6bU, 0x46U, 0x70U, 0x35U, 0x75U, 0x47U, 0x63U, 0x67U, 0x57U, 0x58U,  \
        0x78U, 0x63U, 0x66U, 0x78U, 0x69U, 0x40U, 0x76U, 0x73U, 0x48U, 0x73U, 0x39U, 0x43U, 0x39U, 0x71U, 0x51U, 0x57U,  \
        0x47U, 0x72U, 0x42U, 0x73U, 0x2eU, 0x63U, 0x6fU, 0x6dU, 0x30U, 0x1eU, 0x17U, 0x0dU, 0x32U, 0x35U, 0x30U, 0x34U,  \
        0x31U, 0x31U, 0x30U, 0x31U, 0x32U, 0x34U, 0x31U, 0x31U, 0x5aU, 0x17U, 0x0dU, 0x32U, 0x35U, 0x30U, 0x35U, 0x31U,  \
        0x31U, 0x30U, 0x31U, 0x32U, 0x34U, 0x31U, 0x31U, 0x5aU, 0x30U, 0x81U, 0xbfU, 0x31U, 0x0bU, 0x30U, 0x09U, 0x06U,  \
        0x03U, 0x55U, 0x04U, 0x06U, 0x13U, 0x02U, 0x6fU, 0x52U, 0x31U, 0x0bU, 0x30U, 0x09U, 0x06U, 0x03U, 0x55U, 0x04U,  \
        0x08U, 0x0cU, 0x02U, 0x72U, 0x78U, 0x31U, 0x16U, 0x30U, 0x14U, 0x06U, 0x03U, 0x55U, 0x04U, 0x07U, 0x0cU, 0x0dU,  \
        0x67U, 0x51U, 0x45U, 0x38U, 0x34U, 0x33U, 0x79U, 0x51U, 0x56U, 0x30U, 0x73U, 0x61U, 0x67U, 0x31U, 0x2bU, 0x30U,  \
        0x29U, 0x06U, 0x03U, 0x55U, 0x04U, 0x0aU, 0x0cU, 0x22U, 0x64U, 0x71U, 0x68U, 0x47U, 0x59U, 0x41U, 0x51U, 0x32U,  \
        0x59U, 0x34U, 0x67U, 0x46U, 0x66U, 0x43U, 0x71U, 0x30U, 0x74U, 0x31U, 0x79U, 0x41U, 0x42U, 0x43U, 0x59U, 0x78U,  \
        0x65U, 0x78U, 0x39U, 0x65U, 0x41U, 0x78U, 0x74U, 0x37U, 0x31U, 0x66U, 0x31U, 0x11U, 0x30U, 0x0fU, 0x06U, 0x03U,  \
        0x55U, 0x04U, 0x0bU, 0x0cU, 0x08U, 0x61U, 0x38U, 0x37U, 0x52U, 0x42U, 0x33U, 0x35U, 0x57U, 0x31U, 0x18U, 0x30U,  \
        0x16U, 0x06U, 0x03U, 0x55U, 0x04U, 0x03U, 0x0cU, 0x0fU, 0x78U, 0x30U, 0x46U, 0x53U, 0x71U, 0x47U, 0x54U, 0x50U,  \
        0x57U, 0x62U, 0x47U, 0x70U, 0x75U, 0x69U, 0x56U, 0x31U, 0x31U, 0x30U, 0x2fU, 0x06U, 0x09U, 0x2aU, 0x86U, 0x48U,  \
        0x86U, 0xf7U, 0x0dU, 0x01U, 0x09U, 0x01U, 0x16U, 0x22U, 0x6bU, 0x46U, 0x70U, 0x35U, 0x75U, 0x47U, 0x63U, 0x67U,  \
        0x57U, 0x58U, 0x78U, 0x63U, 0x66U, 0x78U, 0x69U, 0x40U, 0x76U, 0x73U, 0x48U, 0x73U, 0x39U, 0x43U, 0x39U, 0x71U,  \
        0x51U, 0x57U, 0x47U, 0x72U, 0x42U, 0x73U, 0x2eU, 0x63U, 0x6fU, 0x6dU, 0x30U, 0x82U, 0x02U, 0x22U, 0x30U, 0x0dU,  \
        0x06U, 0x09U, 0x2aU, 0x86U, 0x48U, 0x86U, 0xf7U, 0x0dU, 0x01U, 0x01U, 0x01U, 0x05U, 0x00U, 0x03U, 0x82U, 0x02U,  \
        0x0fU, 0x00U, 0x30U, 0x82U, 0x02U, 0x0aU, 0x02U, 0x82U, 0x02U, 0x01U, 0x00U, 0xbfU, 0x14U, 0xaeU, 0x49U, 0xd8U,  \
        0x7fU, 0x72U, 0xd3U, 0x6bU, 0x23U, 0xcdU, 0xebU, 0x48U, 0x0eU, 0x65U, 0xdcU, 0x22U, 0x4dU, 0xf2U, 0x0eU, 0x4fU,  \
        0x82U, 0xf6U, 0xedU, 0xb5U, 0xf2U, 0xddU, 0xdbU, 0x7cU, 0x91U, 0xfaU, 0x6eU, 0x59U, 0xffU, 0xd5U, 0xf7U, 0xb6U,  \
        0xdeU, 0x04U, 0x1dU, 0x8aU, 0xccU, 0xd2U, 0x95U, 0xd9U, 0xd1U, 0xe0U, 0xc4U, 0xc1U, 0xf8U, 0x50U, 0xbfU, 0xffU,  \
        0x48U, 0x0cU, 0x91U, 0x22U, 0x50U, 0x9aU, 0x4cU, 0x7bU, 0x8bU, 0xf3U, 0x96U, 0x0aU, 0x28U, 0x26U, 0xb3U, 0xa4U,  \
        0xd9U, 0xe0U, 0xa9U, 0x55U, 0x41U, 0x1aU, 0xfbU, 0x3eU, 0x5bU, 0x27U, 0x6cU, 0xbfU, 0xcaU, 0xc0U, 0x71U, 0xafU,  \
        0x2fU, 0x72U, 0x22U, 0xeeU, 0x46U, 0x01U, 0x25U, 0x62U, 0xadU, 0x3eU, 0xc7U, 0x04U, 0xf6U, 0xb1U, 0x18U, 0xb6U,  \
        0x2cU, 0xc0U, 0x12U, 0x6eU, 0x0fU, 0xe2U, 0x9bU, 0x3eU, 0xe5U, 0xa6U, 0xa0U, 0xa8U, 0x06U, 0x45U, 0x03U, 0x41U,  \
        0x17U, 0x4eU, 0x16U, 0x1fU, 0xa9U, 0x74U, 0xd6U, 0x84U, 0x4eU, 0xd6U, 0x79U, 0xa7U, 0x10U, 0xb8U, 0x11U, 0xa9U,  \
        0x0eU, 0x92U, 0x1fU, 0x25U, 0xddU, 0x7fU, 0xb1U, 0xf2U, 0xd1U, 0xb9U, 0xf2U, 0x68U, 0xd8U, 0x33U, 0x59U, 0x4bU,  \
        0x82U, 0x7dU, 0x77U, 0xccU, 0xd1U, 0x9cU, 0xfaU, 0x23U, 0xb4U, 0xfbU, 0x58U, 0x88U, 0xf2U, 0xcdU, 0xeaU, 0xd5U,  \
        0x16U, 0xf2U, 0x2cU, 0x75U, 0x2dU, 0xfaU, 0x62U, 0xc3U, 0xc1U, 0x09U, 0x6eU, 0xe0U, 0x06U, 0x70U, 0xe0U, 0xb5U,  \
        0x07U, 0x09U, 0x99U, 0x62U, 0xd9U, 0xd6U, 0xe4U, 0xe7U, 0x6cU, 0x6dU, 0xc8U, 0x82U, 0x07U, 0x50U, 0x93U, 0xf7U,  \
        0xe2U, 0xd8U, 0xedU, 0xd1U, 0x5fU, 0xe3U, 0xd0U, 0x9eU, 0xcfU, 0x93U, 0x54U, 0xd9U, 0x5fU, 0xddU, 0x5dU, 0xceU,  \
        0x37U, 0x60U, 0xf1U, 0xabU, 0x14U, 0x8aU, 0x04U, 0x7bU, 0x65U, 0xa7U, 0xbaU, 0x7fU, 0xdfU, 0x45U, 0x45U, 0x7cU,  \
        0x4bU, 0xa1U, 0x5bU, 0xaeU, 0x4eU, 0xc6U, 0x94U, 0x3dU, 0x8cU, 0x4eU, 0x87U, 0xd2U, 0x94U, 0x3cU, 0xa4U, 0xf3U,  \
        0x9fU, 0xdaU, 0xfcU, 0xf2U, 0x36U, 0x7cU, 0xe7U, 0x0dU, 0xadU, 0x5aU, 0x42U, 0x37U, 0xf1U, 0x2aU, 0x81U, 0xd0U,  \
        0x6eU, 0xa1U, 0xa7U, 0x67U, 0x03U, 0x1eU, 0x87U, 0xedU, 0x00U, 0xbbU, 0x73U, 0x4aU, 0x68U, 0x28U, 0x31U, 0xa2U,  \
        0x82U, 0x9aU, 0xa3U, 0x04U, 0xc1U, 0xe8U, 0x87U, 0xffU, 0x45U, 0x7eU, 0xaaU, 0xc1U, 0x9fU, 0xd4U, 0x3bU, 0x05U,  \
        0xc7U, 0x83U, 0xfdU, 0x21U, 0x71U, 0xfeU, 0xbdU, 0x7fU, 0x38U, 0xc9U, 0x16U, 0x19U, 0x52U, 0x0eU, 0xe6U, 0x03U,  \
        0x33U, 0x8dU, 0x1dU, 0x1eU, 0xc9U, 0x36U, 0x1cU, 0xcdU, 0x4eU, 0x9dU, 0x82U, 0x29U, 0x88U, 0xcdU, 0x9bU, 0x2aU,  \
        0xbeU, 0x6cU, 0x5fU, 0x7bU, 0xb2U, 0xb2U, 0x3aU, 0x79U, 0x00U, 0x6aU, 0x7dU, 0xf5U, 0xadU, 0x1aU, 0x9dU, 0x1eU,  \
        0xcdU, 0x58U, 0x2aU, 0xcfU, 0x5eU, 0xf4U, 0x4eU, 0x80U, 0xabU, 0x3bU, 0x4fU, 0xddU, 0xf8U, 0xd4U, 0xdeU, 0x34U,  \
        0xa2U, 0xc4U, 0x20U, 0xd9U, 0x59U, 0x19U, 0x2dU, 0x85U, 0x02U, 0x5eU, 0x1fU, 0x68U, 0xb1U, 0x4cU, 0x8dU, 0xb9U,  \
        0x11U, 0x06U, 0xe9U, 0x2dU, 0x76U, 0xb5U, 0x58U, 0x8cU, 0x50U, 0xa8U, 0x37U, 0x6eU, 0x66U, 0x78U, 0x6fU, 0x83U,  \
        0x30U, 0x46U, 0x4dU, 0x34U, 0x9fU, 0xb4U, 0x18U, 0x4aU, 0xb9U, 0xbbU, 0xfaU, 0x7bU, 0xc5U, 0xaeU, 0xd6U, 0x32U,  \
        0x10U, 0x84U, 0x84U, 0x6cU, 0x3fU, 0x9aU, 0x80U, 0x33U, 0x35U, 0xfcU, 0x4dU, 0xbcU, 0xd5U, 0x6eU, 0x60U, 0x54U,  \
        0x50U, 0xcfU, 0x7eU, 0x6dU, 0x80U, 0x97U, 0x04U, 0xfaU, 0x8fU, 0x0bU, 0x20U, 0xfdU, 0xbdU, 0x98U, 0x2bU, 0xa1U,  \
        0x37U, 0xbdU, 0x59U, 0xfdU, 0x4aU, 0xecU, 0x45U, 0xa1U, 0x09U, 0x8bU, 0x17U, 0xc9U, 0x72U, 0x14U, 0x33U, 0xb7U,  \
        0x05U, 0x5eU, 0x12U, 0x5dU, 0xe2U, 0x5aU, 0x1dU, 0xceU, 0x21U, 0x54U, 0xf6U, 0xe1U, 0xeaU, 0xd5U, 0x55U, 0xaaU,  \
        0x27U, 0xebU, 0x4dU, 0x09U, 0xdfU, 0x19U, 0x40U, 0x82U, 0x2eU, 0x66U, 0x89U, 0x17U, 0x65U, 0xd9U, 0x6eU, 0xb3U,  \
        0xd6U, 0x38U, 0x4eU, 0x8dU, 0x61U, 0x16U, 0xd6U, 0x74U, 0xd4U, 0xdeU, 0x16U, 0x5fU, 0x51U, 0x19U, 0xd5U, 0x42U,  \
        0xb8U, 0x83U, 0xd2U, 0xc8U, 0xdeU, 0x4bU, 0xa9U, 0x69U, 0x97U, 0xb6U, 0x8dU, 0x02U, 0x03U, 0x01U, 0x00U, 0x01U,  \
        0xa3U, 0x82U, 0x0eU, 0xf3U, 0x30U, 0x82U, 0x0eU, 0xefU, 0x30U, 0x0cU, 0x06U, 0x03U, 0x55U, 0x1dU, 0x13U, 0x04U,  \
        0x05U, 0x30U, 0x03U, 0x01U, 0x01U, 0xffU, 0x30U, 0x82U, 0x02U, 0x1bU, 0x06U, 0x09U, 0x2bU, 0x06U, 0x01U, 0x04U,  \
        0x01U, 0x82U, 0x26U, 0x01U, 0x40U, 0x04U, 0x82U, 0x02U, 0x0cU, 0x30U, 0x82U, 0x02U, 0x08U, 0x04U, 0x82U, 0x02U,  \
        0x00U, 0xc4U, 0xc7U, 0x20U, 0xfaU, 0x0bU, 0xceU, 0x03U, 0x4aU, 0x14U, 0xf8U, 0xdfU, 0xf6U, 0x04U, 0x81U, 0x4dU,  \
        0xa3U, 0xe2U, 0x0cU, 0x0fU, 0xa8U, 0x7dU, 0xdaU, 0x4aU, 0xa5U, 0xbbU, 0x52U, 0x08U, 0x67U, 0xeeU, 0x1dU, 0xc3U,  \
        0x2fU, 0x5bU, 0xeeU, 0x58U, 0x90U, 0x6fU, 0xc3U, 0xecU, 0x4dU, 0xdeU, 0xb6U, 0xc5U, 0xa0U, 0xadU, 0x01U, 0x4bU,  \
        0xf0U, 0xc6U, 0x6cU, 0x61U, 0x6eU, 0x5eU, 0x19U, 0x3fU, 0x89U, 0x88U, 0xa6U, 0xcfU, 0x72U, 0x88U, 0x52U, 0x63U,  \
        0x89U, 0x8fU, 0x4dU, 0x3eU, 0x34U, 0x83U, 0x98U, 0x7eU, 0x3cU, 0xf0U, 0x26U, 0xeaU, 0x97U, 0x36U, 0x5cU, 0xd8U,  \
        0x82U, 0x3fU, 0x80U, 0x04U, 0xfaU, 0x14U, 0xbdU, 0x7cU, 0xcfU, 0xf6U, 0x2eU, 0xaeU, 0xb1U, 0x95U, 0x70U, 0x83U,  \
        0xefU, 0xf4U, 0x3dU, 0x8aU, 0x40U, 0x6eU, 0x8eU, 0x51U, 0x7dU, 0x90U, 0x09U, 0x21U, 0xadU, 0xdcU, 0x3fU, 0x1cU,  \
        0xc5U, 0x37U, 0x11U, 0x85U, 0xa4U, 0x74U, 0xcaU, 0xc0U, 0x53U, 0xb2U, 0xa4U, 0x57U, 0xc1U, 0x09U, 0x78U, 0xc7U,  \
        0x9aU, 0x9aU, 0x3bU, 0xefU, 0x09U, 0x4eU, 0x9dU, 0x35U, 0x52U, 0x06U, 0xefU, 0x50U, 0x85U, 0x6dU, 0xb4U, 0x87U,  \
        0xd1U, 0xcbU, 0x19U, 0x58U, 0x88U, 0xbfU, 0xb3U, 0x5bU, 0x24U, 0x0cU, 0x6aU, 0x66U, 0xf2U, 0x35U, 0xacU, 0x29U,  \
        0xb3U, 0x87U, 0xa1U, 0x9dU, 0x42U, 0x48U, 0x5cU, 0xdeU, 0x18U, 0xe7U, 0x33U, 0xd9U, 0xdbU, 0xd0U, 0x92U, 0xa4U,  \
        0x08U, 0xddU, 0xe2U, 0x9eU, 0x87U, 0x50U, 0x33U, 0xa7U, 0xaeU, 0xc3U, 0x50U, 0x90U, 0x91U, 0x18U, 0x09U, 0x40U,  \
        0xd8U, 0xa5U, 0xe2U, 0x4aU, 0xbeU, 0x19U, 0x25U, 0x56U, 0x40U, 0xbaU, 0x8eU, 0x0dU, 0xb1U, 0xdaU, 0x31U, 0x62U,  \
        0xeeU, 0x28U, 0x77U, 0xeeU, 0x79U, 0xf5U, 0xfbU, 0x2dU, 0x6bU, 0xdfU, 0xdfU, 0x4dU, 0xa0U, 0x9bU, 0xbcU, 0x9fU,  \
        0xb3U, 0xbeU, 0xdeU, 0xc2U, 0x1fU, 0xe6U, 0xccU, 0xa7U, 0x7fU, 0xadU, 0x1cU, 0xb2U, 0xf7U, 0x0dU, 0x78U, 0x30U,  \
        0xbfU, 0x66U, 0xd6U, 0x94U, 0xf0U, 0x26U, 0x20U, 0x84U, 0x9eU, 0x64U, 0x77U, 0xaeU, 0x22U, 0x94U, 0xcaU, 0xf9U,  \
        0x08U, 0x4fU, 0x5bU, 0x03U, 0xfaU, 0xd7U, 0x5bU, 0x39U, 0x4bU, 0x1cU, 0xc3U, 0x60U, 0x13U, 0x1eU, 0xecU, 0x3fU,  \
        0x3aU, 0x8bU, 0x5fU, 0xfbU, 0x23U, 0x4fU, 0x35U, 0x82U, 0x46U, 0xa1U, 0x85U, 0x28U, 0x8fU, 0xa4U, 0x36U, 0x1aU,  \
        0x78U, 0xeeU, 0x5dU, 0x48U, 0xb6U, 0x23U, 0xd2U, 0x53U, 0xcdU, 0x0aU, 0x25U, 0x47U, 0x87U, 0x33U, 0xfaU, 0xa1U,  \
        0x72U, 0xe4U, 0x3bU, 0x7cU, 0x09U, 0xa7U, 0x1aU, 0x90U, 0x20U, 0x75U, 0x25U, 0x64U, 0xdaU, 0xd6U, 0xe1U, 0x34U,  \
        0xeeU, 0xddU, 0xb5U, 0x3cU, 0x9dU, 0x3aU, 0x5dU, 0xb6U, 0x87U, 0xeeU, 0xafU, 0xf7U, 0xfcU, 0x09U, 0x05U, 0x64U,  \
        0x2aU, 0x13U, 0x10U, 0x33U, 0xaeU, 0xc3U, 0xbfU, 0x6aU, 0xe6U, 0x91U, 0x58U, 0xc3U, 0xd7U, 0xc0U, 0x0cU, 0x75U,  \
        0xf2U, 0x6fU, 0xfaU, 0x8dU, 0xfaU, 0xadU, 0x0dU, 0x03U, 0x4eU, 0xf1U, 0xf6U, 0xa4U, 0x5aU, 0xdcU, 0x02U, 0xf6U,  \
        0xb5U, 0xecU, 0x67U, 0x43U, 0xb7U, 0xdaU, 0xaeU, 0x82U, 0x1aU, 0xf7U, 0x5dU, 0xa4U, 0x45U, 0xa9U, 0x28U, 0xd4U,  \
        0x1dU, 0x75U, 0x75U, 0x1bU, 0xc3U, 0xf0U, 0x6bU, 0x91U, 0xe9U, 0x4aU, 0x89U, 0x85U, 0x54U, 0x07U, 0x13U, 0x41U,  \
        0x11U, 0xb6U, 0x41U, 0xbcU, 0x91U, 0x58U, 0x97U, 0x29U, 0x44U, 0x91U, 0xccU, 0xe3U, 0x12U, 0x81U, 0x3fU, 0xacU,  \
        0x54U, 0xccU, 0x23U, 0x74U, 0xebU, 0xa5U, 0xb8U, 0x68U, 0xcdU, 0x55U, 0x26U, 0xdcU, 0xffU, 0xc5U, 0xedU, 0xb2U,  \
        0x33U, 0xa0U, 0xb3U, 0x19U, 0x37U, 0xbeU, 0xa8U, 0xd9U, 0x54U, 0xb9U, 0xaaU, 0x98U, 0x91U, 0x68U, 0xf1U, 0x55U,  \
        0x9fU, 0xf4U, 0x28U, 0x83U, 0x5eU, 0xbeU, 0xfdU, 0x51U, 0x61U, 0xb1U, 0xd3U, 0x48U, 0x2dU, 0xefU, 0x79U, 0x2aU,  \
        0x6dU, 0xd5U, 0xe3U, 0x8fU, 0x15U, 0x31U, 0x93U, 0x3fU, 0x90U, 0xbbU, 0x77U, 0x2fU, 0x0bU, 0x91U, 0x9dU, 0x1dU,  \
        0x3eU, 0xadU, 0xb7U, 0x3bU, 0xa2U, 0x5eU, 0xfcU, 0x57U, 0x52U, 0x0aU, 0xafU, 0x86U, 0xbeU, 0x6fU, 0x7aU, 0x5cU,  \
        0x90U, 0xe5U, 0xd2U, 0x04U, 0x42U, 0x37U, 0xcdU, 0xf6U, 0x96U, 0xaaU, 0x67U, 0x9eU, 0x12U, 0x6dU, 0x25U, 0x2bU,  \
        0x02U, 0x02U, 0x02U, 0x02U, 0x00U, 0x30U, 0x82U, 0x04U, 0x1bU, 0x06U, 0x09U, 0x2bU, 0x06U, 0x01U, 0x04U, 0x01U,  \
        0x82U, 0x26U, 0x01U, 0x41U, 0x04U, 0x82U, 0x04U, 0x0cU, 0x30U, 0x82U, 0x04U, 0x08U, 0x04U, 0x82U, 0x04U, 0x00U,  \
        0xb8U, 0x51U, 0xd4U, 0xf2U, 0x81U, 0x9eU, 0x46U, 0x3cU, 0x15U, 0x46U, 0x6fU, 0x70U, 0x6cU, 0xeeU, 0xf1U, 0xf4U,  \
        0x4cU, 0xaeU, 0x92U, 0xcbU, 0x7aU, 0x04U, 0xc9U, 0xceU, 0xdfU, 0x0dU, 0x8bU, 0xc2U, 0x24U, 0xb5U, 0xedU, 0xa5U,  \
        0x20U, 0x1fU, 0xf5U, 0x75U, 0x5cU, 0x48U, 0x11U, 0x5aU, 0x3bU, 0x0cU, 0x0bU, 0x1eU, 0x79U, 0xc6U, 0x17U, 0xafU,  \
        0x83U, 0x7eU, 0x3cU, 0xd5U, 0xa8U, 0x6eU, 0x44U, 0xbfU, 0x63U, 0xf0U, 0x05U, 0xbbU, 0x08U, 0x46U, 0x06U, 0x28U,  \
        0xaaU, 0xc5U, 0xd5U, 0xbbU, 0x71U, 0x38U, 0x20U, 0x80U, 0x2eU, 0xe0U, 0x24U, 0x28U, 0xc8U, 0x50U, 0x30U, 0x9bU,  \
        0xc1U, 0x6bU, 0xaaU, 0x2eU, 0xcdU, 0xc5U, 0x5cU, 0x16U, 0xe8U, 0xa6U, 0xcdU, 0x0fU, 0xd2U, 0x0cU, 0xc7U, 0x2fU,  \
        0x01U, 0xabU, 0x48U, 0x11U, 0xe3U, 0x46U, 0xdfU, 0x63U, 0xa5U, 0x18U, 0xe4U, 0x19U, 0x99U, 0x40U, 0x93U, 0xe3U,  \
        0xcaU, 0x5dU, 0xa8U, 0x33U, 0x70U, 0xb7U, 0x49U, 0x07U, 0xecU, 0xbaU, 0x10U, 0x45U, 0xf2U, 0x08U, 0x11U, 0x48U,  \
        0xcaU, 0xf1U, 0x24U, 0xcfU, 0xbbU, 0xc6U, 0x81U, 0x8dU, 0x1aU, 0x53U, 0x85U, 0xd0U, 0xf1U, 0xd9U, 0xc2U, 0x0dU,  \
        0x83U, 0xe1U, 0x39U, 0x59U, 0xb7U, 0x2bU, 0xd9U, 0xbeU, 0x99U, 0x72U, 0xd4U, 0x7aU, 0x4fU, 0x88U, 0x66U, 0x46U,  \
        0x74U, 0x49U, 0x4bU, 0x26U, 0x42U, 0x97U, 0x58U, 0x55U, 0x17U, 0x4eU, 0x50U, 0x5fU, 0x12U, 0x39U, 0x7aU, 0x00U,  \
        0x73U, 0xd1U, 0xc8U, 0xf0U, 0x34U, 0x9bU, 0xb7U, 0x30U, 0xa4U, 0x23U, 0x67U, 0x48U, 0xacU, 0xf4U, 0xbdU, 0x90U,  \
        0xbcU, 0xcdU, 0x1dU, 0x2dU, 0xe1U, 0xfcU, 0x9aU, 0x66U, 0x4bU, 0x1cU, 0x70U, 0x2cU, 0xeaU, 0xe8U, 0x7eU, 0x6eU,  \
        0x46U, 0xe6U, 0x5dU, 0x3bU, 0x37U, 0xe6U, 0xc7U, 0x82U, 0x85U, 0xc2U, 0xfdU, 0x8bU, 0xacU, 0x0dU, 0xc1U, 0x22U,  \
        0x9aU, 0x0aU, 0xd3U, 0x79U, 0xd5U, 0x08U, 0x4bU, 0xa4U, 0x27U, 0xe7U, 0x51U, 0x18U, 0xa1U, 0x77U, 0xbaU, 0xb6U,  \
        0xb9U, 0x5cU, 0x73U, 0x30U, 0x4aU, 0x42U, 0x4bU, 0x26U, 0x57U, 0xd3U, 0x5dU, 0x65U, 0xd4U, 0xd4U, 0xc4U, 0x33U,  \
        0x41U, 0xccU, 0x6bU, 0xe8U, 0xc9U, 0xccU, 0x44U, 0x90U, 0xf7U, 0x8bU, 0x5bU, 0xeaU, 0x58U, 0x55U, 0x5bU, 0x9bU,  \
        0x76U, 0xf3U, 0xb6U, 0xacU, 0x13U, 0xa6U, 0x13U, 0x35U, 0x89U, 0x44U, 0x60U, 0x22U, 0xf0U, 0x50U, 0x26U, 0x93U,  \
        0xa2U, 0x05U, 0xe7U, 0x1bU, 0x53U, 0xdeU, 0xdeU, 0x2bU, 0xeeU, 0x34U, 0x04U, 0x9cU, 0xceU, 0x8cU, 0x27U, 0x2dU,  \
        0x9bU, 0x13U, 0x59U, 0x84U, 0xeeU, 0x4eU, 0xabU, 0x60U, 0xf9U, 0x43U, 0xd8U, 0xe0U, 0x07U, 0xdeU, 0x58U, 0xb3U,  \
        0xe9U, 0x21U, 0x70U, 0xb7U, 0x79U, 0x27U, 0xd6U, 0xe6U, 0xf0U, 0x4fU, 0xa7U, 0xadU, 0x66U, 0xc9U, 0xfaU, 0x1fU,  \
        0x4aU, 0x2dU, 0xfdU, 0x91U, 0xe9U, 0x0eU, 0xd4U, 0x58U, 0x59U, 0x1aU, 0x4fU, 0xd2U, 0x5eU, 0xadU, 0x86U, 0xaaU,  \
        0x87U, 0xa6U, 0xe0U, 0x6bU, 0x7cU, 0xaeU, 0xc9U, 0x17U, 0x9dU, 0x0aU, 0xaeU, 0x2aU, 0x62U, 0x03U, 0xf6U, 0x22U,  \
        0x93U, 0x44U, 0x61U, 0xccU, 0x45U, 0x46U, 0x93U, 0x8bU, 0x59U, 0x97U, 0x4aU, 0x34U, 0x80U, 0x57U, 0x77U, 0x80U,  \
        0x64U, 0xa7U, 0x5bU, 0x8bU, 0x2fU, 0x3fU, 0x49U, 0x6aU, 0xb6U, 0x40U, 0xc4U, 0xcdU, 0x16U, 0xc3U, 0x10U, 0xc4U,  \
        0x96U, 0xc7U, 0x88U, 0xdcU, 0x9fU, 0x98U, 0xd3U, 0x4dU, 0x44U, 0x1bU, 0x08U, 0xc0U, 0x26U, 0x67U, 0xe0U, 0x95U,  \
        0x73U, 0xe5U, 0x4fU, 0x29U, 0x05U, 0x78U, 0x80U, 0xceU, 0x2eU, 0xb7U, 0x56U, 0xfaU, 0x16U, 0x09U, 0x7bU, 0xf6U,  \
        0xedU, 0x10U, 0x9fU, 0x7bU, 0xcaU, 0x92U, 0xc2U, 0x01U, 0x9bU, 0xf2U, 0x64U, 0x3bU, 0xa8U, 0x41U, 0x1eU, 0x01U,  \
        0xf9U, 0x59U, 0x68U, 0xf3U, 0xdfU, 0xfdU, 0xfbU, 0x9dU, 0x3cU, 0xdcU, 0x64U, 0xc8U, 0xcbU, 0xcbU, 0x3fU, 0x0cU,  \
        0x9bU, 0x5cU, 0x1aU, 0x1dU, 0xddU, 0xbcU, 0xc0U, 0xb4U, 0x80U, 0x91U, 0x09U, 0xbfU, 0xd3U, 0xdbU, 0xd4U, 0xc5U,  \
        0x36U, 0xe3U, 0x44U, 0xd7U, 0xa1U, 0x9eU, 0xa4U, 0x60U, 0xe6U, 0xedU, 0xd9U, 0x99U, 0xdaU, 0x23U, 0x29U, 0xdaU,  \
        0x42U, 0x8cU, 0xfeU, 0xddU, 0x85U, 0x97U, 0xb9U, 0xd5U, 0x27U, 0x95U, 0x07U, 0x7cU, 0xe8U, 0x4fU, 0x1aU, 0xa7U,  \
        0x2cU, 0x03U, 0x09U, 0x02U, 0x89U, 0x11U, 0x19U, 0xeeU, 0x90U, 0xabU, 0x67U, 0x5fU, 0xe6U, 0x52U, 0x81U, 0xb9U,  \
        0x76U, 0x3fU, 0x0cU, 0x5fU, 0x74U, 0xacU, 0x64U, 0x0fU, 0xc3U, 0x5cU, 0x9fU, 0x12U, 0xaaU, 0xbbU, 0x96U, 0xfeU,  \
        0x78U, 0x4aU, 0x10U, 0x4dU, 0xbcU, 0x95U, 0xc7U, 0xd0U, 0x9bU, 0x78U, 0xebU, 0x3dU, 0x7cU, 0x59U, 0xcfU, 0xd9U,  \
        0xf8U, 0x3cU, 0x37U, 0xa0U, 0xffU, 0xdcU, 0x2eU, 0x36U, 0x17U, 0xbfU, 0x94U, 0x3fU, 0x4bU, 0xc4U, 0x62U, 0x2aU,  \
        0x95U, 0x27U, 0x07U, 0xe5U, 0x6fU, 0x8cU, 0x73U, 0x78U, 0x5eU, 0x39U, 0xe6U, 0x6bU, 0xaaU, 0xfeU, 0xb1U, 0x87U,  \
        0x83U, 0x1bU, 0xc9U, 0x5eU, 0x75U, 0xb7U, 0xe5U, 0xdcU, 0x4eU, 0xe6U, 0x84U, 0x46U, 0x95U, 0x06U, 0x66U, 0xe0U,  \
        0xa9U, 0xb3U, 0x2dU, 0x7eU, 0xaeU, 0xd7U, 0xc1U, 0x3bU, 0xc3U, 0xbaU, 0xceU, 0xe8U, 0x95U, 0x7cU, 0x41U, 0x75U,  \
        0xd4U, 0x57U, 0x70U, 0x1aU, 0x97U, 0x43U, 0x52U, 0x99U, 0x14U, 0xa4U, 0x6dU, 0x6cU, 0x6eU, 0x05U, 0xf6U, 0x95U,  \
        0x29U, 0xffU, 0xa7U, 0xe0U, 0x80U, 0xe7U, 0x14U, 0x93U, 0x80U, 0x18U, 0x34U, 0xb5U, 0xdcU, 0x05U, 0x7aU, 0x4aU,  \
        0xa2U, 0x81U, 0x43U, 0x34U, 0x2cU, 0x51U, 0x95U, 0x50U, 0x37U, 0x9bU, 0xa0U, 0x08U, 0xdcU, 0x40U, 0xf9U, 0x67U,  \
        0x6eU, 0xb7U, 0x8dU, 0x2bU, 0x18U, 0x5dU, 0xd0U, 0xfaU, 0xb3U, 0xeeU, 0x52U, 0x4bU, 0xb4U, 0xdcU, 0x04U, 0x52U,  \
        0x3dU, 0x98U, 0x18U, 0x3cU, 0x6dU, 0xc0U, 0x00U, 0x3aU, 0x92U, 0x46U, 0xa9U, 0xc4U, 0x3fU, 0xd0U, 0xc0U, 0x9eU,  \
        0x6aU, 0xfdU, 0xa9U, 0xc2U, 0xafU, 0xffU, 0x8dU, 0xa1U, 0x3fU, 0x91U, 0x1cU, 0x08U, 0xd2U, 0xadU, 0xf0U, 0x55U,  \
        0x1bU, 0x12U, 0x50U, 0x7eU, 0xd0U, 0x94U, 0xc9U, 0x67U, 0xaaU, 0xf4U, 0x95U, 0xd3U, 0xd3U, 0x38U, 0xb9U, 0xecU,  \
        0xb1U, 0x19U, 0xadU, 0x96U, 0x25U, 0x6cU, 0xcdU, 0xe8U, 0xbfU, 0xf6U, 0x11U, 0x6fU, 0x1cU, 0xd6U, 0xebU, 0xc9U,  \
        0x0fU, 0xc3U, 0xb4U, 0x89U, 0xe3U, 0x5bU, 0xd8U, 0xb0U, 0x36U, 0xabU, 0x9eU, 0x3aU, 0x0bU, 0x15U, 0x79U, 0x6dU,  \
        0x41U, 0x2eU, 0x78U, 0x84U, 0x4aU, 0x93U, 0xf6U, 0xedU, 0x31U, 0x72U, 0x60U, 0xabU, 0xbdU, 0xbcU, 0x63U, 0xe9U,  \
        0xc8U, 0x44U, 0xf4U, 0x46U, 0x3fU, 0x91U, 0xbbU, 0x4eU, 0x01U, 0x81U, 0xc8U, 0x00U, 0xd5U, 0x58U, 0x0eU, 0x7dU,  \
        0x0bU, 0x17U, 0xb7U, 0xc0U, 0xeeU, 0x8fU, 0xc8U, 0x00U, 0x6eU, 0x13U, 0xf3U, 0x30U, 0x31U, 0xebU, 0x90U, 0xc3U,  \
        0xc2U, 0x14U, 0xb9U, 0x54U, 0x51U, 0x57U, 0xc7U, 0xfaU, 0x42U, 0x77U, 0xedU, 0xbeU, 0x48U, 0xc8U, 0x27U, 0xfbU,  \
        0xeaU, 0x60U, 0x84U, 0x2eU, 0x06U, 0xcfU, 0x8eU, 0x04U, 0x7bU, 0x4cU, 0x46U, 0x72U, 0x8eU, 0x5eU, 0x06U, 0x77U,  \
        0xd0U, 0xffU, 0x96U, 0x90U, 0x72U, 0x45U, 0x93U, 0x9bU, 0x18U, 0xadU, 0xc7U, 0x94U, 0x0cU, 0x03U, 0x7bU, 0x43U,  \
        0x7fU, 0x9eU, 0x60U, 0x45U, 0x40U, 0x8eU, 0xcbU, 0x1eU, 0x5eU, 0x8fU, 0x6dU, 0x20U, 0x4fU, 0x49U, 0xebU, 0x6cU,  \
        0x5eU, 0x3fU, 0x6eU, 0x6cU, 0xe6U, 0x39U, 0x15U, 0x4eU, 0xe7U, 0xa6U, 0x04U, 0x41U, 0xa1U, 0x76U, 0xadU, 0x9aU,  \
        0xdcU, 0x85U, 0x98U, 0xe1U, 0xedU, 0x6cU, 0x47U, 0x00U, 0x49U, 0x00U, 0xc5U, 0x89U, 0xd3U, 0x13U, 0x06U, 0xaeU,  \
        0x36U, 0x90U, 0xc0U, 0x87U, 0x05U, 0x3aU, 0xdaU, 0x56U, 0x12U, 0x76U, 0x8fU, 0x76U, 0x2cU, 0x7dU, 0x8bU, 0x32U,  \
        0x85U, 0xbdU, 0x63U, 0xf4U, 0xdcU, 0xc1U, 0xc8U, 0xe8U, 0xbfU, 0xd7U, 0xb1U, 0x95U, 0x9dU, 0x5eU, 0x25U, 0x84U,  \
        0xdbU, 0xeaU, 0x92U, 0x6fU, 0x66U, 0x94U, 0x4bU, 0x36U, 0x84U, 0xc4U, 0xf4U, 0xffU, 0x97U, 0x94U, 0x3cU, 0xdaU,  \
        0x88U, 0xd5U, 0x0cU, 0xb1U, 0x2cU, 0x34U, 0xdeU, 0xb4U, 0x36U, 0xfaU, 0x67U, 0x4bU, 0x77U, 0xf1U, 0x48U, 0xbbU,  \
        0xb4U, 0x2fU, 0x2eU, 0x05U, 0x0cU, 0x11U, 0x6eU, 0xfcU, 0xd3U, 0xd2U, 0x35U, 0x4eU, 0x09U, 0x23U, 0x7bU, 0x9eU,  \
        0x2cU, 0xeaU, 0x3cU, 0xcaU, 0x73U, 0x4aU, 0xdaU, 0x1eU, 0xccU, 0x1bU, 0xe2U, 0x17U, 0x99U, 0x7fU, 0xa3U, 0x0eU,  \
        0x55U, 0x6aU, 0xf9U, 0xd0U, 0xfcU, 0x3aU, 0x77U, 0xceU, 0x90U, 0xe9U, 0x9aU, 0x14U, 0x9dU, 0x30U, 0xe7U, 0xf5U,  \
        0x02U, 0x02U, 0x04U, 0x00U, 0x30U, 0x82U, 0x04U, 0x1bU, 0x06U, 0x09U, 0x2bU, 0x06U, 0x01U, 0x04U, 0x01U, 0x82U,  \
        0x26U, 0x01U, 0x42U, 0x04U, 0x82U, 0x04U, 0x0cU, 0x30U, 0x82U, 0x04U, 0x08U, 0x04U, 0x82U, 0x04U, 0x00U, 0x17U,  \
        0x0bU, 0x47U, 0x47U, 0x21U, 0x56U, 0xd1U, 0x5fU, 0x5aU, 0x83U, 0xd3U, 0x0fU, 0x7dU, 0x40U, 0x74U, 0x3eU, 0xf7U,  \
        0x6fU, 0xceU, 0xedU, 0xf3U, 0xe5U, 0x8cU, 0x05U, 0x02U, 0x8fU, 0x9eU, 0x98U, 0x5fU, 0x24U, 0x88U, 0xf0U, 0xf8U,  \
        0x2fU, 0x4fU, 0xf6U, 0x97U, 0xe2U, 0x03U, 0x6bU, 0xfeU, 0x07U, 0x05U, 0x06U, 0xaeU, 0x02U, 0xb3U, 0xe2U, 0x9bU,  \
        0xc8U, 0x92U, 0x0eU, 0xdbU, 0x10U, 0xbdU, 0xaeU, 0xa2U, 0xb3U, 0xf7U, 0x60U, 0x80U, 0xc9U, 0x21U, 0x26U, 0x5bU,  \
        0xeeU, 0x70U, 0xb3U, 0xe3U, 0x2dU, 0x0dU, 0x48U, 0xbcU, 0xbdU, 0xfdU, 0x78U, 0x47U, 0xf8U, 0x4eU, 0x3fU, 0x0cU,  \
        0xe8U, 0x07U, 0xe6U, 0x6aU, 0xe8U, 0x6cU, 0xfaU, 0x85U, 0xd4U, 0x64U, 0x14U, 0xb9U, 0x21U, 0xcfU, 0x38U, 0x94U,  \
        0xc3U, 0xc8U, 0x85U, 0x8aU, 0x7dU, 0x21U, 0xb2U, 0x2eU, 0x60U, 0x7bU, 0xf1U, 0x58U, 0x49U, 0xc5U, 0x79U, 0x1bU,  \
        0x6cU, 0x71U, 0x99U, 0x5cU, 0x47U, 0xaeU, 0x86U, 0xd9U, 0x30U, 0x68U, 0xa3U, 0x83U, 0x94U, 0xeaU, 0x68U, 0x20U,  \
        0x36U, 0x49U, 0xc7U, 0x42U, 0x5cU, 0x0eU, 0x9cU, 0x78U, 0xf1U, 0xc1U, 0x5dU, 0xdeU, 0x02U, 0x28U, 0x93U, 0xd2U,  \
        0x93U, 0xeaU, 0x4cU, 0x65U, 0x5aU, 0x69U, 0x4dU, 0xf1U, 0x83U, 0xf2U, 0x5cU, 0x01U, 0xceU, 0x92U, 0x33U, 0xbeU,  \
        0x14U, 0xa3U, 0x42U, 0xc4U, 0x5dU, 0x92U, 0x15U, 0x7fU, 0xd5U, 0x7dU, 0x70U, 0x3eU, 0x99U, 0xd3U, 0x48U, 0x24U,  \
        0x7fU, 0xb0U, 0xc7U, 0xdeU, 0x0aU, 0xd2U, 0x05U, 0x95U, 0x98U, 0x52U, 0x6cU, 0x33U, 0xcdU, 0xf0U, 0xafU, 0x2dU,  \
        0xefU, 0x4eU, 0x91U, 0x04U, 0x39U, 0x18U, 0xdeU, 0xadU, 0x34U, 0xefU, 0x37U, 0x96U, 0xcdU, 0xc7U, 0xe9U, 0xc6U,  \
        0xfcU, 0x68U, 0xa2U, 0xc9U, 0x21U, 0xa9U, 0xfcU, 0x8fU, 0x5eU, 0x49U, 0x74U, 0xe3U, 0xe4U, 0x8dU, 0x3cU, 0xc6U,  \
        0xb9U, 0x89U, 0xf7U, 0xd4U, 0x57U, 0x56U, 0x34U, 0xb0U, 0x96U, 0xd4U, 0x57U, 0x26U, 0x0cU, 0xfbU, 0x98U, 0xbdU,  \
        0xf8U, 0x83U, 0xe0U, 0x6dU, 0x19U, 0xabU, 0xc0U, 0x41U, 0x7eU, 0xabU, 0x0aU, 0xf9U, 0x27U, 0x77U, 0x8bU, 0x19U,  \
        0x89U, 0x22U, 0x1bU, 0x9eU, 0x35U, 0x89U, 0x66U, 0x91U, 0xf9U, 0x2cU, 0xfeU, 0xf5U, 0x46U, 0xc2U, 0x16U, 0x53U,  \
        0xceU, 0x9eU, 0xe1U, 0x48U, 0x0eU, 0xacU, 0x61U, 0x48U, 0x1eU, 0xb8U, 0x55U, 0x4cU, 0x28U, 0x04U, 0x2eU, 0xf7U,  \
        0x43U, 0x73U, 0xd5U, 0x76U, 0x85U, 0xbaU, 0x7eU, 0xe6U, 0x25U, 0xb3U, 0x18U, 0xfdU, 0x2aU, 0xb8U, 0x09U, 0xe8U,  \
        0x9fU, 0xb3U, 0x9aU, 0x77U, 0x6dU, 0x9eU, 0xdcU, 0x58U, 0x89U, 0x9aU, 0xc2U, 0x2cU, 0x74U, 0xefU, 0x14U, 0xf0U,  \
        0x93U, 0x2aU, 0xfaU, 0x47U, 0xc7U, 0x8cU, 0xc0U, 0x25U, 0x07U, 0xddU, 0x08U, 0x5dU, 0x47U, 0x1dU, 0xc3U, 0x40U,  \
        0x86U, 0x25U, 0x1fU, 0x71U, 0x65U, 0x97U, 0x84U, 0x18U, 0x32U, 0x37U, 0x24U, 0xe3U, 0x54U, 0x90U, 0xe0U, 0x7cU,  \
        0x8fU, 0xcfU, 0xb5U, 0x26U, 0xbaU, 0xd0U, 0x3cU, 0x93U, 0x22U, 0xf3U, 0x70U, 0x61U, 0xceU, 0x19U, 0xc7U, 0x1bU,  \
        0x38U, 0x15U, 0xebU, 0xc2U, 0xebU, 0xd0U, 0xccU, 0x65U, 0xceU, 0x9fU, 0x9dU, 0x52U, 0xf4U, 0x03U, 0x32U, 0x0dU,  \
        0xf0U, 0x7dU, 0x48U, 0x8aU, 0x8cU, 0x7aU, 0x5bU, 0x4aU, 0x2bU, 0x76U, 0x1bU, 0x41U, 0x0bU, 0x34U, 0x48U, 0xefU,  \
        0x40U, 0x4dU, 0xb0U, 0xeaU, 0x40U, 0x54U, 0xc5U, 0x37U, 0x4cU, 0x24U, 0x38U, 0xcdU, 0x33U, 0x85U, 0xe2U, 0xb0U,  \
        0xbbU, 0x45U, 0x74U, 0xe6U, 0x0fU, 0x1eU, 0x5cU, 0x73U, 0xfdU, 0x07U, 0xdbU, 0x88U, 0x97U, 0x27U, 0xa0U, 0x22U,  \
        0xe7U, 0x67U, 0x5eU, 0x57U, 0xbcU, 0x92U, 0xdcU, 0xafU, 0x61U, 0x28U, 0x92U, 0x87U, 0xb9U, 0x6aU, 0xb0U, 0x7fU,  \
        0xf6U, 0xbcU, 0x89U, 0x39U, 0x8bU, 0x53U, 0xddU, 0x9dU, 0xf1U, 0xd0U, 0x26U, 0x3aU, 0x76U, 0x2aU, 0x8aU, 0x17U,  \
        0xc0U, 0xfcU, 0x37U, 0xeeU, 0x60U, 0xfeU, 0x8dU, 0xc2U, 0x67U, 0xb3U, 0x9eU, 0x0fU, 0xfaU, 0x50U, 0x4aU, 0x38U,  \
        0x3dU, 0x40U, 0xd8U, 0x58U, 0x5aU, 0x6aU, 0xccU, 0x0bU, 0x4bU, 0x1bU, 0x91U, 0x0cU, 0xe0U, 0xf9U, 0x05U, 0x71U,  \
        0xc9U, 0x95U, 0x91U, 0xd5U, 0xa4U, 0x1eU, 0xbcU, 0xb4U, 0xe0U, 0xc1U, 0xc3U, 0x3bU, 0xbcU, 0x6eU, 0x31U, 0x3eU,  \
        0xc6U, 0x1eU, 0xd8U, 0xedU, 0xb0U, 0xd9U, 0x7dU, 0xa5U, 0x61U, 0xa8U, 0x44U, 0x92U, 0x21U, 0x1fU, 0x5bU, 0x97U,  \
        0xfbU, 0xb0U, 0x57U, 0x1aU, 0xfcU, 0x36U, 0x9bU, 0x26U, 0x8aU, 0x38U, 0xb7U, 0xc2U, 0xafU, 0x9fU, 0x95U, 0xf8U,  \
        0xd5U, 0xafU, 0x6eU, 0xf2U, 0xe0U, 0x20U, 0x15U, 0xb8U, 0xb2U, 0xddU, 0x48U, 0x80U, 0xb6U, 0x7fU, 0x73U, 0x15U,  \
        0x63U, 0x64U, 0xb4U, 0x82U, 0xe2U, 0xdbU, 0x3aU, 0xf6U, 0xc1U, 0xc7U, 0x9eU, 0xbfU, 0x35U, 0xc1U, 0x3dU, 0xe9U,  \
        0xa8U, 0x0cU, 0xf3U, 0x15U, 0x96U, 0x37U, 0x9eU, 0x4dU, 0x82U, 0x82U, 0xa8U, 0x4bU, 0xf6U, 0xc4U, 0x41U, 0x2fU,  \
        0xa9U, 0xdeU, 0x23U, 0x55U, 0xc1U, 0x92U, 0xc5U, 0x25U, 0xbcU, 0xc9U, 0x50U, 0x21U, 0x37U, 0xe1U, 0x87U, 0xd2U,  \
        0x21U, 0x87U, 0x0eU, 0xdfU, 0x12U, 0xc4U, 0x7eU, 0x04U, 0x82U, 0xf7U, 0xeeU, 0x43U, 0x5bU, 0x9cU, 0x5eU, 0x93U,  \
        0x6fU, 0x44U, 0xacU, 0x18U, 0x6bU, 0x6fU, 0xe0U, 0x7eU, 0x58U, 0xfdU, 0xc1U, 0xf7U, 0x67U, 0x3dU, 0x2bU, 0xbdU,  \
        0xdfU, 0x97U, 0x41U, 0xc4U, 0x29U, 0x91U, 0xcdU, 0x20U, 0x05U, 0x03U, 0xdaU, 0xceU, 0x03U, 0x77U, 0xb2U, 0xe4U,  \
        0xa7U, 0xb0U, 0x08U, 0x22U, 0x35U, 0x8dU, 0x9bU, 0xbbU, 0xf4U, 0xfeU, 0xabU, 0x48U, 0x41U, 0xb0U, 0x38U, 0x98U,  \
        0xe0U, 0x54U, 0xecU, 0x89U, 0x5cU, 0x52U, 0xbaU, 0xfcU, 0xc3U, 0xf2U, 0xa6U, 0x4cU, 0xf6U, 0xe3U, 0x6bU, 0xd2U,  \
        0xdfU, 0x3aU, 0x73U, 0x97U, 0xb6U, 0x38U, 0x6cU, 0xd8U, 0xd1U, 0xeeU, 0xa0U, 0x15U, 0xd9U, 0xa9U, 0xe1U, 0x07U,  \
        0x2fU, 0x5aU, 0xbcU, 0x34U, 0xb9U, 0x65U, 0x9eU, 0x36U, 0x20U, 0x84U, 0x70U, 0xccU, 0xffU, 0x81U, 0xc6U, 0xeeU,  \
        0x10U, 0x0fU, 0x90U, 0x05U, 0x4aU, 0xa7U, 0xbfU, 0x4cU, 0x6cU, 0x2cU, 0x4fU, 0x0cU, 0x6bU, 0xf3U, 0xe6U, 0x43U,  \
        0x21U, 0xedU, 0x9aU, 0xe0U, 0xe9U, 0xcfU, 0x2aU, 0xffU, 0x14U, 0xe5U, 0x59U, 0x71U, 0x39U, 0x85U, 0xafU, 0xa3U,  \
        0xe7U, 0x86U, 0xfcU, 0xd8U, 0xb8U, 0x05U, 0x4dU, 0x0fU, 0xcfU, 0x28U, 0x72U, 0x08U, 0x64U, 0x6eU, 0x2aU, 0x7dU,  \
        0x42U, 0x57U, 0x4bU, 0xe4U, 0xa1U, 0xceU, 0x12U, 0x60U, 0x7dU, 0x4aU, 0x68U, 0x18U, 0x61U, 0x0aU, 0x31U, 0x71U,  \
        0xa8U, 0x0bU, 0x2aU, 0x0eU, 0xd1U, 0xfeU, 0x34U, 0xe9U, 0x6cU, 0x1cU, 0x14U, 0x05U, 0xc3U, 0xb3U, 0x20U, 0xe2U,  \
        0xccU, 0x9fU, 0xa6U, 0xfcU, 0xeeU, 0x2eU, 0x82U, 0x7dU, 0x9fU, 0x01U, 0xdfU, 0xe7U, 0xd9U, 0x9fU, 0x64U, 0x43U,  \
        0xe7U, 0xd3U, 0xa2U, 0x2aU, 0xf5U, 0xbbU, 0x87U, 0xfbU, 0x0dU, 0x4cU, 0x6cU, 0x9fU, 0x0aU, 0x8aU, 0x93U, 0x97U,  \
        0x02U, 0xffU, 0x60U, 0x24U, 0x44U, 0x70U, 0x04U, 0x9eU, 0x3fU, 0xf3U, 0x5aU, 0x32U, 0xd5U, 0x8aU, 0x9aU, 0xa1U,  \
        0x03U, 0xf8U, 0xcbU, 0xe5U, 0x39U, 0x73U, 0x27U, 0xc6U, 0xb1U, 0x6dU, 0x57U, 0xa6U, 0xe7U, 0xf3U, 0xe0U, 0xefU,  \
        0x92U, 0xafU, 0xa4U, 0xd1U, 0xb7U, 0x5fU, 0xb6U, 0x96U, 0x2bU, 0xa6U, 0x8cU, 0xaeU, 0xe0U, 0x31U, 0xc9U, 0xe9U,  \
        0x80U, 0xf4U, 0x6bU, 0xc0U, 0x87U, 0xc1U, 0xfcU, 0x72U, 0xd4U, 0x6fU, 0x1bU, 0xccU, 0x26U, 0x05U, 0xaeU, 0x83U,  \
        0x50U, 0x9bU, 0x8bU, 0xcfU, 0x51U, 0xd8U, 0xb8U, 0x8aU, 0x34U, 0x10U, 0x23U, 0x70U, 0x3eU, 0xafU, 0x6bU, 0xceU,  \
        0x64U, 0x7cU, 0x1eU, 0x8fU, 0xe2U, 0x8aU, 0x4eU, 0x15U, 0xbeU, 0xadU, 0x43U, 0x67U, 0xc7U, 0xfdU, 0xdfU, 0x28U,  \
        0xa9U, 0xd8U, 0x39U, 0xb4U, 0x75U, 0xfcU, 0xe4U, 0x09U, 0xb1U, 0x2aU, 0xdbU, 0xacU, 0xe3U, 0x3cU, 0x21U, 0xbaU,  \
        0x61U, 0xadU, 0xf3U, 0x13U, 0x4bU, 0x01U, 0x74U, 0xcdU, 0xbaU, 0xc2U, 0x9bU, 0xb7U, 0x33U, 0x2aU, 0xceU, 0x6eU,  \
        0x41U, 0xbdU, 0xc8U, 0xb5U, 0xecU, 0xb5U, 0xa3U, 0xc4U, 0x97U, 0x9bU, 0x2cU, 0x2cU, 0x96U, 0xe6U, 0x5dU, 0x24U,  \
        0xffU, 0x6cU, 0xb8U, 0x63U, 0x7eU, 0xd6U, 0x10U, 0x1aU, 0xbcU, 0x76U, 0xf5U, 0xc5U, 0xf2U, 0xadU, 0x17U, 0x2cU,  \
        0x07U, 0x13U, 0x11U, 0x25U, 0x9eU, 0x11U, 0x51U, 0x4eU, 0xbeU, 0x59U, 0xf5U, 0x37U, 0xa1U, 0xb8U, 0x23U, 0x1bU,  \
        0x1bU, 0x63U, 0x71U, 0xcdU, 0x18U, 0xfeU, 0xceU, 0x3cU, 0x1eU, 0x41U, 0x91U, 0x47U, 0x85U, 0x31U, 0x40U, 0x02U,  \
        0x02U, 0x04U, 0x00U, 0x30U, 0x81U, 0xb1U, 0x06U, 0x09U, 0x2bU, 0x06U, 0x01U, 0x04U, 0x01U, 0x82U, 0x26U, 0x01U,  \
        0x43U, 0x04U, 0x81U, 0xa3U, 0x30U, 0x81U, 0xa0U, 0x04U, 0x60U, 0x1cU, 0x7cU, 0x19U, 0x6bU, 0x6fU, 0x56U, 0x3aU,  \
        0x59U, 0xe4U, 0xf1U, 0x69U, 0xa2U, 0x41U, 0x8fU, 0x0bU, 0x64U, 0x7eU, 0x23U, 0xadU, 0x3aU, 0x63U, 0x70U, 0x42U,  \
        0x3bU, 0x72U, 0xccU, 0x19U, 0xe1U, 0xb4U, 0xf2U, 0x77U, 0x00U, 0x49U, 0xbcU, 0x2aU, 0xefU, 0xbfU, 0x13U, 0xe5U,  \
        0x57U, 0xd5U, 0x8bU, 0xffU, 0xceU, 0x44U, 0xaaU, 0x2dU, 0xd0U, 0x0cU, 0x9aU, 0xa7U, 0xa0U, 0x19U, 0xe3U, 0x6aU,  \
        0x4bU, 0x26U, 0x01U, 0xdaU, 0x07U, 0x2cU, 0xd9U, 0x29U, 0xf7U, 0x34U, 0x0dU, 0x50U, 0xffU, 0x70U, 0xb1U, 0x31U,  \
        0x58U, 0x99U, 0x86U, 0x31U, 0xb2U, 0x46U, 0x65U, 0x9aU, 0x65U, 0xd6U, 0x12U, 0xf6U, 0xbeU, 0x16U, 0x63U, 0xf0U,  \
        0x31U, 0xbbU, 0x55U, 0x0aU, 0x8eU, 0x90U, 0x5aU, 0x94U, 0x34U, 0x04U, 0x10U, 0x11U, 0x83U, 0x91U, 0x6eU, 0x04U,  \
        0xb9U, 0x4dU, 0xd9U, 0xc5U, 0x17U, 0xa9U, 0xc1U, 0x54U, 0x63U, 0x96U, 0x29U, 0x04U, 0x20U, 0x39U, 0x59U, 0xf8U,  \
        0x31U, 0x90U, 0x99U, 0xc1U, 0x34U, 0x82U, 0xefU, 0xdbU, 0x99U, 0x52U, 0x70U, 0xb7U, 0xadU, 0xb1U, 0xf6U, 0x4aU,  \
        0x69U, 0xccU, 0xbeU, 0xa8U, 0xf4U, 0x4cU, 0x11U, 0x10U, 0xe5U, 0x7fU, 0xa7U, 0x27U, 0x5cU, 0x02U, 0x01U, 0x60U,  \
        0x02U, 0x05U, 0x00U, 0xa5U, 0xa5U, 0xa5U, 0x5aU, 0x30U, 0x81U, 0x91U, 0x06U, 0x09U, 0x2bU, 0x06U, 0x01U, 0x04U,  \
        0x01U, 0x82U, 0x26U, 0x01U, 0x44U, 0x04U, 0x81U, 0x83U, 0x30U, 0x81U, 0x80U, 0x04U, 0x40U, 0x23U, 0xa2U, 0x5cU,  \
        0x72U, 0x6bU, 0x29U, 0x99U, 0x04U, 0x53U, 0x97U, 0xd8U, 0x79U, 0xc2U, 0x52U, 0x0eU, 0xa4U, 0x1aU, 0x49U, 0x03U,  \
        0x15U, 0x84U, 0xafU, 0xbaU, 0x9fU, 0x44U, 0x0dU, 0xedU, 0xb1U, 0xc8U, 0xe4U, 0x17U, 0x89U, 0x86U, 0xfdU, 0xa1U,  \
        0x8dU, 0xdbU, 0xa2U, 0x10U, 0xe8U, 0xeaU, 0x43U, 0x7cU, 0x49U, 0x95U, 0x6cU, 0x0fU, 0x5fU, 0x40U, 0xfeU, 0x6aU,  \
        0xfdU, 0x86U, 0x9bU, 0xdaU, 0x40U, 0x20U, 0xdeU, 0xebU, 0xa0U, 0x56U, 0xc7U, 0xe9U, 0xfbU, 0x04U, 0x10U, 0x7dU,  \
        0x60U, 0xb4U, 0xd7U, 0x7aU, 0xd8U, 0x05U, 0x98U, 0x59U, 0x0bU, 0x37U, 0xf5U, 0xf9U, 0x18U, 0xdfU, 0xf5U, 0x04U,  \
        0x20U, 0x05U, 0xa3U, 0x33U, 0x2aU, 0x02U, 0x1bU, 0x60U, 0x5aU, 0xc7U, 0x37U, 0x42U, 0xe2U, 0x7eU, 0x8dU, 0x40U,  \
        0xceU, 0x91U, 0xf0U, 0xefU, 0x23U, 0xaeU, 0x44U, 0x59U, 0xdeU, 0x2dU, 0x76U, 0x12U, 0x10U, 0xc3U, 0x37U, 0x5bU,  \
        0xb0U, 0x02U, 0x01U, 0x40U, 0x02U, 0x05U, 0x00U, 0xa5U, 0xa5U, 0xa5U, 0x5aU, 0x30U, 0x1aU, 0x06U, 0x09U, 0x2bU,  \
        0x06U, 0x01U, 0x04U, 0x01U, 0x82U, 0x26U, 0x01U, 0x45U, 0x04U, 0x0dU, 0x30U, 0x0bU, 0x04U, 0x02U, 0x00U, 0x00U,  \
        0x02U, 0x05U, 0x00U, 0xa5U, 0xa5U, 0xa5U, 0xa5U, 0x30U, 0x81U, 0xb1U, 0x06U, 0x09U, 0x2bU, 0x06U, 0x01U, 0x04U,  \
        0x01U, 0x82U, 0x26U, 0x01U, 0x46U, 0x04U, 0x81U, 0xa3U, 0x30U, 0x81U, 0xa0U, 0x04U, 0x60U, 0xeeU, 0xf4U, 0x09U,  \
        0x88U, 0x77U, 0xdfU, 0x32U, 0xffU, 0x85U, 0xc7U, 0x99U, 0x6dU, 0x4cU, 0x57U, 0xbcU, 0x6aU, 0xdcU, 0x00U, 0x61U,  \
        0xc1U, 0x57U, 0xb8U, 0x1eU, 0x3dU, 0x7aU, 0x90U, 0x89U, 0x10U, 0xcdU, 0x1cU, 0xeeU, 0x28U, 0x9bU, 0x69U, 0x76U,  \
        0xc7U, 0xe9U, 0x0bU, 0x95U, 0x13U, 0xe6U, 0x84U, 0x2aU, 0x2eU, 0xd9U, 0xe3U, 0x27U, 0xf4U, 0xb1U, 0x70U, 0xa0U,  \
        0x1dU, 0xabU, 0x18U, 0xc1U, 0x1dU, 0x26U, 0xf4U, 0x42U, 0x75U, 0xc6U, 0x4eU, 0x9aU, 0x88U, 0x65U, 0x86U, 0x0aU,  \
        0x8cU, 0x6eU, 0xf1U, 0x6fU, 0xe8U, 0xbaU, 0x17U, 0x8eU, 0x58U, 0x18U, 0x04U, 0xbeU, 0x0aU, 0x59U, 0x61U, 0x63U,  \
        0x3aU, 0xb3U, 0x05U, 0x80U, 0x3fU, 0x09U, 0xc7U, 0x46U, 0x6fU, 0x07U, 0xf0U, 0x0bU, 0x32U, 0x04U, 0x10U, 0x42U,  \
        0x9aU, 0x7aU, 0xa7U, 0xefU, 0x83U, 0x36U, 0x7aU, 0xeeU, 0xbaU, 0x05U, 0xa9U, 0x1dU, 0x37U, 0x83U, 0x77U, 0x04U,  \
        0x20U, 0xdeU, 0xedU, 0xa5U, 0x16U, 0x0aU, 0x1aU, 0x55U, 0xdfU, 0x91U, 0x82U, 0x9bU, 0xf8U, 0x3aU, 0x87U, 0xb8U,  \
        0x28U, 0xb2U, 0xb7U, 0xe7U, 0x23U, 0xd7U, 0xc1U, 0x21U, 0xe6U, 0x38U, 0x3cU, 0x1dU, 0x3dU, 0xe3U, 0x3aU, 0xb3U,  \
        0x71U, 0x02U, 0x01U, 0x60U, 0x02U, 0x05U, 0x00U, 0xa5U, 0xa5U, 0xa5U, 0x5aU, 0x30U, 0x81U, 0x91U, 0x06U, 0x09U,  \
        0x2bU, 0x06U, 0x01U, 0x04U, 0x01U, 0x82U, 0x26U, 0x01U, 0x47U, 0x04U, 0x81U, 0x83U, 0x30U, 0x81U, 0x80U, 0x04U,  \
        0x40U, 0xe0U, 0x7fU, 0x0eU, 0xa1U, 0x61U, 0xc2U, 0xd0U, 0xfbU, 0xa2U, 0xacU, 0xc8U, 0x62U, 0xaaU, 0x01U, 0x96U,  \
        0xabU, 0xb0U, 0x82U, 0x5aU, 0x7aU, 0xfcU, 0x72U, 0x7bU, 0x7aU, 0x3fU, 0xd2U, 0x36U, 0x54U, 0xfcU, 0x2aU, 0x0fU,  \
        0xecU, 0x99U, 0xd6U, 0x91U, 0xb0U, 0x75U, 0x4cU, 0x3aU, 0xaeU, 0x6fU, 0xb9U, 0x5eU, 0x89U, 0x82U, 0xe1U, 0xa7U,  \
        0x51U, 0x23U, 0x00U, 0x20U, 0x16U, 0x8aU, 0x2bU, 0x47U, 0x64U, 0x67U, 0xb3U, 0xb3U, 0x69U, 0x69U, 0x85U, 0x9fU,  \
        0xe3U, 0x04U, 0x10U, 0x1aU, 0xd7U, 0x98U, 0xafU, 0xd2U, 0x33U, 0xd2U, 0x04U, 0x7fU, 0x7eU, 0xfcU, 0xcdU, 0xc8U,  \
        0x2dU, 0x8cU, 0x0fU, 0x04U, 0x20U, 0xd5U, 0x2fU, 0x3eU, 0x95U, 0x74U, 0xb8U, 0x6fU, 0x8aU, 0x8fU, 0x72U, 0xc6U,  \
        0x88U, 0xe6U, 0x9dU, 0xefU, 0x88U, 0x40U, 0x2eU, 0x05U, 0x28U, 0x19U, 0x1fU, 0x49U, 0xd2U, 0xc8U, 0xdfU, 0x19U,  \
        0x6bU, 0x6fU, 0x26U, 0xd6U, 0x5fU, 0x02U, 0x01U, 0x40U, 0x02U, 0x05U, 0x00U, 0xa5U, 0xa5U, 0xa5U, 0x5aU, 0x30U,  \
        0x19U, 0x06U, 0x09U, 0x2bU, 0x06U, 0x01U, 0x04U, 0x01U, 0x82U, 0x26U, 0x01U, 0x48U, 0x04U, 0x0cU, 0x30U, 0x0aU,  \
        0x04U, 0x01U, 0x00U, 0x02U, 0x05U, 0x00U, 0xa5U, 0xa5U, 0xa5U, 0xa5U, 0x30U, 0x81U, 0xe7U, 0x06U, 0x09U, 0x2bU,  \
        0x06U, 0x01U, 0x04U, 0x01U, 0x82U, 0x26U, 0x01U, 0x49U, 0x04U, 0x81U, 0xd9U, 0x30U, 0x81U, 0xd6U, 0x04U, 0x81U,  \
        0x80U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U,  \
        0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U,  \
        0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U,  \
        0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U,  \
        0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U,  \
        0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U,  \
        0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U,  \
        0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U,  \
        0x00U, 0x04U, 0x10U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U,  \
        0x00U, 0x00U, 0x00U, 0x04U, 0x20U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U,  \
        0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U,  \
        0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x04U, 0x10U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U,  \
        0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U, 0x01U, 0x00U, 0x02U, 0x01U, 0x00U, 0x02U, 0x05U, 0x00U,  \
        0xa5U, 0xa5U, 0xa5U, 0xa5U, 0x30U, 0x1cU, 0x06U, 0x09U, 0x2bU, 0x06U, 0x01U, 0x04U, 0x01U, 0x82U, 0x26U, 0x01U,  \
        0x4aU, 0x04U, 0x0fU, 0x30U, 0x0dU, 0x04U, 0x04U, 0x00U, 0x00U, 0x00U, 0x01U, 0x02U, 0x05U, 0x00U, 0xa5U, 0xa5U,  \
        0xa5U, 0x5aU, 0x30U, 0x1cU, 0x06U, 0x09U, 0x2bU, 0x06U, 0x01U, 0x04U, 0x01U, 0x82U, 0x26U, 0x01U, 0x4cU, 0x04U,  \
        0x0fU, 0x30U, 0x0dU, 0x04U, 0x04U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U, 0x05U, 0x00U, 0xa5U, 0xa5U, 0xa5U, 0xa5U,  \
        0x30U, 0x1cU, 0x06U, 0x09U, 0x2bU, 0x06U, 0x01U, 0x04U, 0x01U, 0x82U, 0x26U, 0x01U, 0x4dU, 0x04U, 0x0fU, 0x30U,  \
        0x0dU, 0x04U, 0x04U, 0x00U, 0x00U, 0x00U, 0x03U, 0x02U, 0x05U, 0x00U, 0xa5U, 0xa5U, 0xa5U, 0x5aU, 0x30U, 0x1eU,  \
        0x06U, 0x09U, 0x2bU, 0x06U, 0x01U, 0x04U, 0x01U, 0x82U, 0x26U, 0x01U, 0x4eU, 0x04U, 0x11U, 0x30U, 0x0fU, 0x04U,  \
        0x06U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U, 0x05U, 0x00U, 0xa5U, 0xa5U, 0xa5U, 0xa5U, 0x30U, 0x1eU,  \
        0x06U, 0x09U, 0x2bU, 0x06U, 0x01U, 0x04U, 0x01U, 0x82U, 0x26U, 0x01U, 0x4fU, 0x04U, 0x11U, 0x30U, 0x0fU, 0x04U,  \
        0x06U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U, 0x05U, 0x00U, 0xa5U, 0xa5U, 0xa5U, 0xa5U, 0x30U, 0x20U,  \
        0x06U, 0x09U, 0x2bU, 0x06U, 0x01U, 0x04U, 0x01U, 0x82U, 0x26U, 0x01U, 0x50U, 0x04U, 0x13U, 0x30U, 0x11U, 0x04U,  \
        0x08U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U, 0x05U, 0x00U, 0xa5U, 0xa5U, 0xa5U, 0xa5U,  \
        0x30U, 0x15U, 0x06U, 0x09U, 0x2bU, 0x06U, 0x01U, 0x04U, 0x01U, 0x82U, 0x26U, 0x01U, 0x51U, 0x04U, 0x08U, 0x30U,  \
        0x06U, 0x04U, 0x04U, 0x00U, 0x00U, 0x02U, 0x00U, 0x30U, 0x0dU, 0x06U, 0x09U, 0x2aU, 0x86U, 0x48U, 0x86U, 0xf7U,  \
        0x0dU, 0x01U, 0x01U, 0x0dU, 0x05U, 0x00U, 0x03U, 0x82U, 0x02U, 0x01U, 0x00U, 0x09U, 0x1fU, 0x8eU, 0xdaU, 0x00U,  \
        0xd3U, 0xe5U, 0x49U, 0xb2U, 0x49U, 0x56U, 0x30U, 0xadU, 0x3cU, 0x52U, 0x49U, 0x63U, 0x94U, 0xd7U, 0x77U, 0x2bU,  \
        0xe3U, 0xa9U, 0x40U, 0x26U, 0xfbU, 0x8fU, 0xb3U, 0x8fU, 0xa0U, 0x87U, 0xaaU, 0x2bU, 0xbeU, 0x1dU, 0x44U, 0x1eU,  \
        0x1bU, 0x11U, 0x78U, 0x11U, 0x62U, 0xf6U, 0x99U, 0xc4U, 0xefU, 0xd3U, 0x5aU, 0xc2U, 0x9eU, 0x93U, 0x78U, 0x5dU,  \
        0xa3U, 0x5bU, 0xeaU, 0x12U, 0x79U, 0xa8U, 0x26U, 0xbaU, 0x13U, 0x0bU, 0x83U, 0xbfU, 0x87U, 0x7fU, 0x9cU, 0x7cU,  \
        0xf7U, 0xddU, 0x74U, 0x96U, 0xe5U, 0xb7U, 0x6aU, 0xb2U, 0x42U, 0xb9U, 0x4aU, 0x53U, 0x1bU, 0x57U, 0x03U, 0xb4U,  \
        0xd6U, 0xe1U, 0xfdU, 0x80U, 0xe4U, 0x7eU, 0x0dU, 0x7eU, 0xbbU, 0x42U, 0x61U, 0x71U, 0xcfU, 0x0bU, 0x1aU, 0xc0U,  \
        0x06U, 0x85U, 0xf8U, 0xf2U, 0x8eU, 0x30U, 0xe5U, 0x0aU, 0x59U, 0xcaU, 0xadU, 0x65U, 0x7fU, 0x28U, 0x1cU, 0xb1U,  \
        0xf6U, 0xa9U, 0x83U, 0x8dU, 0x04U, 0x36U, 0xc3U, 0x11U, 0x00U, 0xd4U, 0x84U, 0xa2U, 0x09U, 0x01U, 0x79U, 0xd8U,  \
        0x79U, 0x98U, 0x20U, 0x1aU, 0x02U, 0xf2U, 0x1cU, 0x91U, 0xe7U, 0x29U, 0x3fU, 0xabU, 0xcdU, 0x88U, 0xd3U, 0xb8U,  \
        0x6fU, 0x5cU, 0x11U, 0x16U, 0x9fU, 0x47U, 0x46U, 0x90U, 0xe6U, 0xfbU, 0x3aU, 0x60U, 0x58U, 0x5cU, 0xcfU, 0x99U,  \
        0xedU, 0xd3U, 0x2aU, 0x5fU, 0x09U, 0xbbU, 0x34U, 0x46U, 0x72U, 0x7cU, 0x8aU, 0xa0U, 0xc6U, 0xeeU, 0x8eU, 0xedU,  \
        0xbaU, 0x48U, 0x8eU, 0x2fU, 0x05U, 0x14U, 0x4aU, 0x1eU, 0x08U, 0x28U, 0xf6U, 0x1aU, 0x4bU, 0x29U, 0x5eU, 0x08U,  \
        0x3dU, 0x7eU, 0xefU, 0x5eU, 0xe6U, 0x64U, 0x2fU, 0xcfU, 0x7bU, 0xf2U, 0x63U, 0x83U, 0xf0U, 0x87U, 0xb5U, 0xe6U,  \
        0x72U, 0xb5U, 0x2cU, 0x71U, 0x64U, 0x88U, 0x52U, 0x1cU, 0xcaU, 0x7cU, 0xa5U, 0xf3U, 0x25U, 0x63U, 0x94U, 0x79U,  \
        0xfaU, 0xa6U, 0x5aU, 0xb7U, 0xfbU, 0xe1U, 0x87U, 0xefU, 0xaeU, 0x3bU, 0x94U, 0xd4U, 0x6fU, 0xe7U, 0xd0U, 0x01U,  \
        0xfdU, 0x49U, 0xb4U, 0xf2U, 0x88U, 0xe2U, 0xdcU, 0xd5U, 0xd3U, 0x6fU, 0x66U, 0x23U, 0xdeU, 0x7eU, 0xeeU, 0xf1U,  \
        0x73U, 0x3fU, 0x8dU, 0xd4U, 0x31U, 0x34U, 0x53U, 0xbaU, 0x52U, 0xfaU, 0x60U, 0xa1U, 0x04U, 0xecU, 0x9bU, 0x04U,  \
        0x68U, 0x05U, 0x01U, 0x67U, 0x8bU, 0x90U, 0x71U, 0x51U, 0xf1U, 0xcfU, 0x00U, 0x47U, 0x75U, 0x52U, 0x34U, 0xadU,  \
        0xc4U, 0xf3U, 0xc0U, 0xdeU, 0xcaU, 0x37U, 0x6aU, 0x12U, 0xffU, 0xf1U, 0x81U, 0xe1U, 0x1bU, 0x92U, 0x28U, 0x64U,  \
        0xaeU, 0x04U, 0x42U, 0x04U, 0x2bU, 0x22U, 0x9bU, 0x5aU, 0xa0U, 0xbfU, 0xb8U, 0x09U, 0x11U, 0x16U, 0xcdU, 0x2aU,  \
        0x32U, 0x2eU, 0xb8U, 0x31U, 0xf7U, 0xe6U, 0x24U, 0xc2U, 0xaaU, 0xa9U, 0x8aU, 0xbfU, 0xb0U, 0xc9U, 0xbfU, 0xb5U,  \
        0x46U, 0x81U, 0x64U, 0x3bU, 0x13U, 0xb1U, 0x8fU, 0x0dU, 0x33U, 0xf9U, 0x2cU, 0x74U, 0xd6U, 0xfaU, 0x7fU, 0x92U,  \
        0x82U, 0xe4U, 0x53U, 0x72U, 0x5eU, 0x2aU, 0xecU, 0x9fU, 0x29U, 0x6fU, 0x12U, 0x0fU, 0x2bU, 0xd3U, 0xf4U, 0xdbU,  \
        0x37U, 0x5dU, 0x96U, 0x14U, 0x19U, 0xc0U, 0x8aU, 0x48U, 0xdcU, 0x71U, 0xe3U, 0xddU, 0xa8U, 0x24U, 0x07U, 0xa0U,  \
        0x15U, 0x95U, 0xf8U, 0x32U, 0x65U, 0x92U, 0x17U, 0x12U, 0x66U, 0xdaU, 0x66U, 0x14U, 0x57U, 0xa5U, 0x24U, 0xf1U,  \
        0x54U, 0xe0U, 0x7dU, 0x3aU, 0x42U, 0x95U, 0x1cU, 0x97U, 0x46U, 0x57U, 0xa2U, 0x5cU, 0xc5U, 0xa8U, 0x78U, 0x5aU,  \
        0x28U, 0xfcU, 0xb7U, 0x99U, 0x1bU, 0xb1U, 0x38U, 0x38U, 0xe3U, 0x1cU, 0x96U, 0x33U, 0x55U, 0xd3U, 0x52U, 0x7aU,  \
        0x85U, 0xfcU, 0xa3U, 0xf3U, 0xb8U, 0x63U, 0x2dU, 0x25U, 0x8bU, 0x4fU, 0x2cU, 0x3aU, 0x2cU, 0xc4U, 0xfcU, 0x0dU,  \
        0x59U, 0xaaU, 0xa7U, 0x44U, 0x06U, 0xf1U, 0xa1U, 0x50U, 0xa2U, 0xa1U, 0x85U, 0xf7U, 0x2cU, 0xb1U, 0x34U, 0x01U,  \
        0xc2U, 0x0dU, 0xe9U, 0x4fU, 0x6bU, 0xbbU, 0x95U, 0xa3U, 0x59U, 0x95U, 0xbbU, 0xb7U, 0x8bU, 0x75U, 0xa9U, 0x54U,  \
        0xe5U, 0xc7U, 0xbcU, 0x7cU, 0x64U, 0x67U, 0xefU, 0xa5U, 0x32U, 0xc6U, 0x7cU, 0x20U, 0x85U, 0x50U, 0x7eU, 0x58U,  \
        0x96U, 0xccU, 0x7fU, 0x84U, 0xbaU, 0xe1U, 0xf7U, 0x7dU, 0x50U, 0xc1U, 0xd7U,  \
    } /* 7051 bytes */

    Yes,I make clean and make every time I rerun gen_keywr_cert.sh .

    And this is my keycert.h,I think 7051U maybe too long.

  • And this is my keycert.h,I think 7051U maybe too long.

    That is not the problem. The certificate size limit is for the individual certificates (primary_cert.bin & secondary_cert.bin) not the final certificate (final_certificate.bin).

    Can you check if the `keycert.h` is getting updated by checking its timestamp:

    ❯ ./gen_keywr_cert.sh -t tifek/SR_10/ti_fek_public.pem -b keys_devel/v15/bmpk.pem --bmek keys_devel/bmek.key -s keys_devel/v15/smpk.pem --smek keys_devel/smek.key --keycnt 2 --keyrev 1
    # Using Key Count: 0x00000003
    # Using Key Rev: 0x00000001
    Generating Dual PKCS#1v1.5 signed certificate!!
    GEN: AES256 key generated, since not provided
    # encrypt aes256 key with tifek public part
    # encrypt SMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt smpk-pub hash using aes256 key
    # encrypt smek (sym key) using aes256 key
    # encrypt BMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt bmpk-pub hash using aes256 key
    # encrypt bmek (sym key) using aes256 key
    1668    secondary_cert.bin
    5383    primary_cert.bin
    7051    ../x509cert/final_certificate.bin
    # SHA512 Hashes of keys are stored in verify_hash.csv for reference..
    ❯ /usr/bin/ls -l ../../../keywr_bin/am62px/keycert.h
    -rw-r--r-- 1 p-shivhare p-shivhare 54269 Apr 11 11:47 ../../../keywr_bin/am62px/keycert.h

  • /mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/scripts/cert_gen/am62px$ ./gen_keywr_cert.sh -t tifek/SR_10/ti_fek_public.pem -b keys_devel/v15/bmpk.pem --bmek keys_devel/bmek.key -s keys_devel/v15/smpk.pem --smek keys_devel/smek.key --keycnt 2 --keyrev 1
    # Using Key Count: 0x00000003
    # Using Key Rev: 0x00000001
    Generating Dual PKCS#1v1.5 signed certificate!!
    GEN: AES256 key generated, since not provided
    # encrypt aes256 key with tifek public part
    # encrypt SMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt smpk-pub hash using aes256 key
    # encrypt smek (sym key) using aes256 key
    # encrypt BMPK-priv signed aes256 key(hash) with tifek public part
    # encrypt bmpk-pub hash using aes256 key
    # encrypt bmek (sym key) using aes256 key
    1668	secondary_cert.bin
    5383	primary_cert.bin
    7051	../x509cert/final_certificate.bin
    # SHA512 Hashes of keys are stored in verify_hash.csv for reference..
    mcu_plus_sdk_am62px_09_01_00_39/source/security/sbl_keywriter/scripts/cert_gen/am62px$ /usr/bin/ls -l ../../../keywr_bin/am62px/keycert.h
    -rw-r--r-- 1 a a 54269 Apr 11 14:28 ../../../keywr_bin/am62px/keycert.h
    

    EyesIt seems it did changes with my command.

  • It seems it did changes with my command.

    This is good.

    How are you booting the generated `tiboot3.bin` keywriter binary?

    Can you please include a dummy custom print like shown below and check if it appears on the UART? This should confirm you are booting the last built keywriter binary.

    diff --git a/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/main.c b/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/main.c
    index 9c18800..3a80330 100644
    --- a/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/main.c
    +++ b/source/security/sbl_keywriter/am62px/wkup-r5fss0-0_nortos/main.c
    @@ -144,6 +144,7 @@ int main()
         DebugP_log("Enabled VPP\r\n");
     
         Sciclient_getVersionCheck(1);
    +    DebugP_log("Dummy log!!\r\n");
     
     	keywriter_processKeyConfig();
     
    

  • thanks! I found out the binary wasn't update correctly.

    Starting Keywriter
    Starting Keywrite
    tca624open
    Enabled VPP
    Dummy log!! Hi Prashant:)
    
    DMSC Firmware Version 9.2.6-v09.02.06-1-gdf86f (Kool
    DMSC Firmware revision 0x9
    DMSC ABI revision 3.1
    
    Starting Keywrite  getversioncheck
    keys Certificate found: 0x43c17580
    Keywriter Debug Response:0x0
    Success Programming Keys
    Starting Keywrite keywriter_processkeyconfig
    

  • DMSC Firmware Version 9.2.6-v09.02.06-1-gdf86f (Kool
    DMSC Firmware revision 0x9
    DMSC ABI revision 3.1
    
    Starting Keywrite  getversioncheck
    keys Certificate found: 0x43c16c00
    Keywriter Debug Response:0x800
    Error occured...
    
    

    Our customer board doesn't have MAIN_UART1 port.

    And below is how I control VPP via GPIO A24:

    void keywriter_setVpp()
    {   
    	CSL_REG32_WR(0x000F41E4,0x20000007);
    	CSL_REG32_WR(0x00601014,0x08000000);
    	CSL_REG32_WR(0x00601018,0x08000000);
    }

  • Our customer board doesn't have MAIN_UART1 port.

    The TIFS logs can be read from the memory buffer and dumped on the same UART0 with the following function:

    void dump_tifs_logs()
    {
        #define TIFS_LOGS_BUFFER_ADDR 0x4405F000
        #define TIFS_LOGS_BUFFER_SIZE 0x1000
    
        uint8_t* ptr = (uint8_t*)TIFS_LOGS_BUFFER_ADDR;
    
        DebugP_log("\r\n--TIFS_LOGS--\r\n");
    
        for(int32_t i = 0; i < TIFS_LOGS_BUFFER_SIZE; i++)
        {
            DebugP_log("%c", *ptr);
            ptr++;
        }
    
        DebugP_log("\r\n--TIFS_LOGS--\r\n");
    }

    Please integrate the function and share the full logs.

    Thanks!

  • Starting Keywriter
    Starting Keywrite
    Enabled VPP
    Dummy log!! Hi Prashant:) 250414 13:57
    
    DMSC Firmware Version 9.2.6-v09.02.06-1-gdf86f (Kool
    DMSC Firmware revision 0x9
    DMSC ABI revision 3.1
    
    Starting Keywrite  getversioncheck
    keys Certificate found: 0x43c16c80
    
    --TIFS_LOGS--
    0x4F8A0000
              0x4F8B0000
                        0x4F80001C
                                  0x4F8A0000
                                            0x4F8B0000
                                                      0x4F8000C8
                                                                0x4003007
                                                                         0x4400926
                                                                                  0x20800000
                                                                                            0x20800001
                                                                                                      0x4F8A00FF
                                                                                                                0x4F8B0001
                                                                                                                          0x4F80001C
                                                                                                                                    0x4C40001C
                                                                                                                                              0x4C40001C
                                                                                                                                                        0x4C40001C
                                                                                                                                                                  0x4C40001C
                                                                                                                                                                            0x4C40001C
                                                                                                                                                                                      0x4C40001C
                                                                                                                                                                                                0x4C40001C
                                                                                                                                                                                                          0x4C40001C
      0x4C40001C
                0x4C40001C
                          0x4C40001C
                                    0x4C40001C
                                              0x4C40001C
                                                        0x4C40001C
                                                                  0x4C40001C
                                                                            0x4C40001C
                                                                                      0x4C40001C
                                                                                                0x4C40001C
                                                                                                          0x4C40001C
                                                                                                                    0x4C40001C
                                                                                                                              0x4F8A00FF
                                                                                                                                        0x4F8B0001
                                                                                                                                                  0x4F8000C8
                                                                                                                                                            0x429000
                                                                                                                                                                    0x820024
                                                                                                                                                                            0x429000
                                                                                                                                                                                    0x820024
                                                                                                                                                                                            0x429000
                                                                                                                                                                                                    0x820024
                                                                                                                                                                                                            0x420021
      0x820024
              0x42000C
                      0x820024
                              0x4F8A00FF
                                        0x4F8B0001
                                                  0x4F80001C
                                                            0x4F8A00FF
                                                                      0x4F8B0001
                                                                                0x4F8000C8
                                                                                          0x420002
                                                                                                  0x820024
                                                                                                          0x4003007
                                                                                                                   0x4400926
                                                                                                                            0x420002
                                                                                                                                    0x820024
                                                                                                                                            0x4003007
                                                                                                                                                     0x4400926
    
    --TIFS_LOGS--
    
    --TIFS_LOGS--
    0x4F8A0000
              0x4F8B0000
                        0x4F80001C
                                  0x4F8A0000
                                            0x4F8B0000
                                                      0x4F8000C8
                                                                0x4003007
                                                                         0x4400926
                                                                                  0x20800000
                                                                                            0x20800001
                                                                                                      0x4F8A00FF
                                                                                                                0x4F8B0001
                                                                                                                          0x4F80001C
                                                                                                                                    0x4C40001C
                                                                                                                                              0x4C40001C
                                                                                                                                                        0x4C40001C
                                                                                                                                                                  0x4C40001C
                                                                                                                                                                            0x4C40001C
                                                                                                                                                                                      0x4C40001C
                                                                                                                                                                                                0x4C40001C
                                                                                                                                                                                                          0x4C40001C
      0x4C40001C
                0x4C40001C
                          0x4C40001C
                                    0x4C40001C
                                              0x4C40001C
                                                        0x4C40001C
                                                                  0x4C40001C
                                                                            0x4C40001C
                                                                                      0x4C40001C
                                                                                                0x4C40001C
                                                                                                          0x4C40001C
                                                                                                                    0x4C40001C
                                                                                                                              0x4F8A00FF
                                                                                                                                        0x4F8B0001
                                                                                                                                                  0x4F8000C8
                                                                                                                                                            0x429000
                                                                                                                                                                    0x820024
                                                                                                                                                                            0x429000
                                                                                                                                                                                    0x820024
                                                                                                                                                                                            0x429000
                                                                                                                                                                                                    0x820024
                                                                                                                                                                                                            0x420021
      0x820024
              0x42000C
                      0x820024
                              0x4F8A00FF
                                        0x4F8B0001
                                                  0x4F80001C
                                                            0x4F8A00FF
                                                                      0x4F8B0001
                                                                                0x4F8000C8
                                                                                          0x420002
                                                                                                  0x820024
                                                                                                          0x4003007
                                                                                                                   0x4400926
                                                                                                                            0x420002
                                                                                                                                    0x820024
                                                                                                                                            0x4003007
                                                                                                                                                     0x4400926
                                                                                                                                                              0x409031
                                                                                                                                                                      0x800023
                                                                                                                                                                              #
                                                                                                                                                                               # Decrypting extensions..
                                                                                                                                                                                                        #
                                                                                                                                                                                                         MPK Options:  0x0
            MEK Options:  0x0
                             MPK Opt P1:  0x0
                                             MPK Opt P2:  0x0
                                                             MEK Opt   :  0x0
                                                                             * SMPKH Part 1 BCH code: e050cadb
    
                                                                                                              * SMPKH Part 2 BCH code: c099dd36
    
                                                                                                                                               * SMPK Hash (part-1,2):
    
                                                                                                                                                                      1f6002b07cd9b0b7c47d9ca8d1aae57b8e8784a12f636b2b760d7d98a18f189700
    
                          60dfd0f23e2b0cb10ec7edc7c6edac3d9bdfefe0eddc3fff7fe9ad875195527d00
    
                                                                                            * SMEK BCH code: a0c6de4e
    
                                                                                                                     * SMEK Hash: 92785809a3dfefea57f6bbed642d730ba5d05e601222a72e815bf01ceb3a50f96ab85d282425f684436fabd4c7da624b791da411615035314103cc64e611f532
    
                                                    * BMPKH Part 1 BCH code: c00807d5
    
                                                                                     * BMPKH Part 2 BCH code: 60311e36
    
                                                                                                                      * BMPK Hash (part-1,2):
    
                                                                                                                                             07b5fd6f33cdba0c745bcc07e50805639713ec517614eac89754da1138d24dac00
    
                                                                                                                                                                                                               5f1600a593b7100f0e1ca3c3a49e59b3622ab0651e08c0ffd2c88b04465cf7c900
    
                                                                   * BMEK BCH code: a0da286f
    
                                                                                            * BMEK Hash: f5fbda1d62b46374de68e763ecd5a72227e7be73ca0d54a6d986ceb784b1bb0d06b6d95a8b399d421e41b7d3e7076220cd3992df255be068bd8924e86ae3a02d
    
                           EXT OTP extension programming disabled
                                                                 MSV extension programming disabled
    
                                                                                                   * KEY CNT: 03030000
    
                                                                                                                      * KEY REV: 01010000
    
                                                                                                                                         SWREV extension programming disabled
    
                                                                                                                                                                             FW CFG REV extension programming disabled
    
        * KEYWR VERSION:  0x20000
    
                                 #
                                  # Programming Keys..
                                                      #
    
                                                       * MSV:
                                                              [u32] bch + msv:  0x8BAC0FFE
                                                                                          MSV extension programming disabled
                                                                                                                            [u32] bch + msv:  0x8BAC0FFE
    
                                                                                                                                                        * SWREV:
                                                                                                                                                                 [u32] SWREV-SBL:  0x1
                                                                                                                                                                                      [u32] SWREV-SYSFW  :  0x1
                                                                                                                                                                                                               SWREV extension programming disabled
                                     [u32] SWREV-SBL:  0x1
                                                          [u32] SWREV-SYSFW  :  0x1
    
                                                                                   * FW CFG REV:
                                                                                                 [u32] SWREV-FW-CFG-REV:  0x1
                                                                                                                             SWREV SEC BCFG extension programming disabled
                                                                                                                                                                          [u32] SWREV-FW-CFG-REV:  0x1
    
                                                                                                                                                                                                      * EXT OTP:
                                                                                                                                                                                                                 EXT OTP extension programming disabled
    
                                         * BMPKH, BMEK:
                                                        Error in programming BMPKH part 1
                                                                                         debug_response:  0x800
    
    --TIFS_LOGS--
    Keywriter Debug Response:0x800
    Error occured...
    
    

    What a magical function! Here are my logs.

  •                                      * BMPKH, BMEK:
                                                        Error in programming BMPKH part 1
                                                                                         debug_response:  0x800

    There is nothing much in the logs. I think it may be the case that the VPP is not enabled correctly and so the TIFS failed to program the BMPK.

    Is this a board with different schematics than the previous one on which the keywriter ran successfully?

  • No,the successfull one is TI's board. The problems today is from our own designed board.

    Also , can you give me some detailed explanation for MSV, can skip it for all keywrite processes?

  • No,the successfull one is TI's board. The problems today is from our own designed board.

    In that case, the VPP should be the cause of the issue. Please make sure you are following the below steps:

    For controlling VPP via GPIO, please ensure the following:

    • The relevant GPIO pin is configured in the Sysconfig. This is required for auto generation of the pinmuxing code.
    • The relevant GPIO is used in the `keywriter_setVpp` function.

    For reference, please refer to the following response where a customer successfully controlled VPP via GPIO

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1339680/processor-sdk-am62x-am6231-hs-fs-varinant-otp-keywritter-support-for-convert-hs-fs-device-into-secure-device/5127460#5127460

    Also , can you give me some detailed explanation for MSV, can skip it for all keywrite processes?

    Please see the following thread:

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1413189/am6421-opt-keywriter-msv-programming

  • void keywriter_setVpp()
    {   
    	CSL_REG32_WR(0x000F41E4,0x20000007);
    	CSL_REG32_WR(0x00601014,0x08000000);
    	CSL_REG32_WR(0x00601018,0x08000000);
    }

    And above is how I control VPP via GPIO A24.  Can you help me  to check it?

  • And above is how I control VPP via GPIO A24.  Can you help me  to check it?

    Instead of directly manipulating the registers, can you please refer the thread shared in my previous response to first configure the GPIO pin in the Sysconfig and then use the GPIO driver APIs to drive high that pin.

  • Starting Keywriter
    Starting Keywrite
    Enabled VPP
    
    DMSC Firmware Version 9.2.6-v09.02.06-1-gdf86f (Kool
    DMSC Firmware revision 0x9
    DMSC ABI revision 3.1
    
    Starting Keywrite  getversioncheck
    keys Certificate found: 0x43c16d00
    
    --TIFS_LOGS--
    0x4F8A0000
              0x4F8B0000
                        0x4F80001C
                                  0x4F8A0000
                                            0x4F8B0000
                                                      0x4F8000C8
                                                                0x4003007
                                                                         0x4400926
                                                                                  0x20800000
                                                                                            0x20800001
                                                                                                      0x4F8A00FF
                                                                                                                0x4F8B0001
                                                                                                                          0x4F80001C
                                                                                                                                    0x4C40001C
                                                                                                                                              0x4C40001C
                                                                                                                                                        0x4C40001C
                                                                                                                                                                  0x4C40001C
                                                                                                                                                                            0x4C40001C
                                                                                                                                                                                      0x4C40001C
                                                                                                                                                                                                0x4C40001C
                                                                                                                                                                                                          0x4C40001C
      0x4C40001C
                0x4C40001C
                          0x4C40001C
                                    0x4C40001C
                                              0x4C40001C
                                                        0x4C40001C
                                                                  0x4C40001C
                                                                            0x4C40001C
                                                                                      0x4C40001C
                                                                                                0x4C40001C
                                                                                                          0x4C40001C
                                                                                                                    0x4C40001C
                                                                                                                              0x4F8A00FF
                                                                                                                                        0x4F8B0001
                                                                                                                                                  0x4F8000C8
                                                                                                                                                            0x429000
                                                                                                                                                                    0x820024
                                                                                                                                                                            0x429000
                                                                                                                                                                                    0x820024
                                                                                                                                                                                            0x429000
                                                                                                                                                                                                    0x820024
                                                                                                                                                                                                            0x420021
      0x820024
              0x42000C
                      0x820024
                              0x4F8A00FF
                                        0x4F8B0001
                                                  0x4F80001C
                                                            0x4F8A00FF
                                                                      0x4F8B0001
                                                                                0x4F8000C8
                                                                                          0x420002
                                                                                                  0x820024
                                                                                                          0x4003007
                                                                                                                   0x4400926
                                                                                                                            0x420002
                                                                                                                                    0x820024
                                                                                                                                            0x4003007
                                                                                                                                                     0x4400926
    
    --TIFS_LOGS--
    
    --TIFS_LOGS--
    0x4F8A0000
              0x4F8B0000
                        0x4F80001C
                                  0x4F8A0000
                                            0x4F8B0000
                                                      0x4F8000C8
                                                                0x4003007
                                                                         0x4400926
                                                                                  0x20800000
                                                                                            0x20800001
                                                                                                      0x4F8A00FF
                                                                                                                0x4F8B0001
                                                                                                                          0x4F80001C
                                                                                                                                    0x4C40001C
                                                                                                                                              0x4C40001C
                                                                                                                                                        0x4C40001C
                                                                                                                                                                  0x4C40001C
                                                                                                                                                                            0x4C40001C
                                                                                                                                                                                      0x4C40001C
                                                                                                                                                                                                0x4C40001C
                                                                                                                                                                                                          0x4C40001C
      0x4C40001C
                0x4C40001C
                          0x4C40001C
                                    0x4C40001C
                                              0x4C40001C
                                                        0x4C40001C
                                                                  0x4C40001C
                                                                            0x4C40001C
                                                                                      0x4C40001C
                                                                                                0x4C40001C
                                                                                                          0x4C40001C
                                                                                                                    0x4C40001C
                                                                                                                              0x4F8A00FF
                                                                                                                                        0x4F8B0001
                                                                                                                                                  0x4F8000C8
                                                                                                                                                            0x429000
                                                                                                                                                                    0x820024
                                                                                                                                                                            0x429000
                                                                                                                                                                                    0x820024
                                                                                                                                                                                            0x429000
                                                                                                                                                                                                    0x820024
                                                                                                                                                                                                            0x420021
      0x820024
              0x42000C
                      0x820024
                              0x4F8A00FF
                                        0x4F8B0001
                                                  0x4F80001C
                                                            0x4F8A00FF
                                                                      0x4F8B0001
                                                                                0x4F8000C8
                                                                                          0x420002
                                                                                                  0x820024
                                                                                                          0x4003007
                                                                                                                   0x4400926
                                                                                                                            0x420002
                                                                                                                                    0x820024
                                                                                                                                            0x4003007
                                                                                                                                                     0x4400926
                                                                                                                                                              0x409031
                                                                                                                                                                      0x800023
                                                                                                                                                                              #
                                                                                                                                                                               # Decrypting extensions..
                                                                                                                                                                                                        #
                                                                                                                                                                                                         MPK Options:  0x0
            MEK Options:  0x0
                             MPK Opt P1:  0x0
                                             MPK Opt P2:  0x0
                                                             MEK Opt   :  0x0
                                                                             * SMPKH Part 1 BCH code: e050cadb
    
                                                                                                              * SMPKH Part 2 BCH code: c099dd36
    
                                                                                                                                               * SMPK Hash (part-1,2):
    
                                                                                                                                                                      1f6002b07cd9b0b7c47d9ca8d1aae57b8e8784a12f636b2b760d7d98a18f189700
    
                          60dfd0f23e2b0cb10ec7edc7c6edac3d9bdfefe0eddc3fff7fe9ad875195527d00
    
                                                                                            * SMEK BCH code: a0c6de4e
    
                                                                                                                     * SMEK Hash: 92785809a3dfefea57f6bbed642d730ba5d05e601222a72e815bf01ceb3a50f96ab85d282425f684436fabd4c7da624b791da411615035314103cc64e611f532
    
                                                    * BMPKH Part 1 BCH code: c00807d5
    
                                                                                     * BMPKH Part 2 BCH code: 60311e36
    
                                                                                                                      * BMPK Hash (part-1,2):
    
                                                                                                                                             07b5fd6f33cdba0c745bcc07e50805639713ec517614eac89754da1138d24dac00
    
                                                                                                                                                                                                               5f1600a593b7100f0e1ca3c3a49e59b3622ab0651e08c0ffd2c88b04465cf7c900
    
                                                                   * BMEK BCH code: a0da286f
    
                                                                                            * BMEK Hash: f5fbda1d62b46374de68e763ecd5a72227e7be73ca0d54a6d986ceb784b1bb0d06b6d95a8b399d421e41b7d3e7076220cd3992df255be068bd8924e86ae3a02d
    
                           EXT OTP extension programming disabled
                                                                 MSV extension programming disabled
    
                                                                                                   * KEY CNT: 03030000
    
                                                                                                                      * KEY REV: 01010000
    
                                                                                                                                         SWREV extension programming disabled
    
                                                                                                                                                                             FW CFG REV extension programming disabled
    
        * KEYWR VERSION:  0x20000
    
                                 #
                                  # Programming Keys..
                                                      #
    
                                                       * MSV:
                                                              [u32] bch + msv:  0x8BAC0FFE
                                                                                          MSV extension programming disabled
                                                                                                                            [u32] bch + msv:  0x8BAC0FFE
    
                                                                                                                                                        * SWREV:
                                                                                                                                                                 [u32] SWREV-SBL:  0x1
                                                                                                                                                                                      [u32] SWREV-SYSFW  :  0x1
                                                                                                                                                                                                               SWREV extension programming disabled
                                     [u32] SWREV-SBL:  0x1
                                                          [u32] SWREV-SYSFW  :  0x1
    
                                                                                   * FW CFG REV:
                                                                                                 [u32] SWREV-FW-CFG-REV:  0x1
                                                                                                                             SWREV SEC BCFG extension programming disabled
                                                                                                                                                                          [u32] SWREV-FW-CFG-REV:  0x1
    
                                                                                                                                                                                                      * EXT OTP:
                                                                                                                                                                                                                 EXT OTP extension programming disabled
    
                                         * BMPKH, BMEK:
                                                        Programmed 11/11 rows successfully
                                                                                          Programmed 2/2 rows successfully
                                                                                                                          Programmed 11/11 rows successfully
                                                                                                                                                            Programmed 2/2 rows successfully
                                                                                                                                                                                            Programmed 11/11 rows successfully
                Programmed 2/2 rows successfully
    
                                                * SMPKH, SMEK:
                                                               Programmed 11/11 rows successfully
                                                                                                 Programmed 2/2 rows successfully
                                                                                                                                 Programmed 11/11 rows successfully
                                                                                                                                                                   Programmed 2/2 rows successfully
                                                                                                                                                                                                   Programmed 11/11 rows successfully
                       Programmed 2/2 rows successfully
    
                                                       * KEYCNT:
                                                                 [u32] keycnt:  0x0
                                                                                   Programmed 2/2 rows successfully
                                                                                                                   [u32] keycnt:  0x2
    
                                                                                                                                     * KEYREV:
                                                                                                                                               [u32] keyrev:  0x0
                                                                                                                                                                 Programmed 2/2 rows successfully
                                                                                                                                                                                                 [u32] keyrev:  0x1
    
    --TIFS_LOGS--
    Keywriter Debug Response:0x0
    Success Programming Keys
    Starting Keywrite keywriter_processkeyconfig
    
    

    I followed your advice and switched to simulate usesage from gpioled and it works!Grinning Thank you!