Guru Meditation Error



  • What baffles me is that [1] shows:

    // check for the correct lora radio mode
    if (lora_obj.stack_mode != E_LORA_STACK_MODE_LORAWAN) {
        nlr_raise(mp_obj_new_exception_msg(&mp_type_OSError, mpexception_os_request_not_possible));
    }
    

    Drawing a conclusion from that, might it be that lora_join is not advisable when doing raw LoRa as outlined within your code

    @sita said in Guru Meditation Error:

    lora = LoRa(mode=LoRa.LORA, region=LoRa.EU868, frequency=433000000, power_mode=LoRa.ALWAYS_ON, tx_power=10, bandwidth=LoRa.BW_125KHZ, sf=8, preamble=8, coding_rate=LoRa.CODING_4_8)
    

    But who is actually invoking lora_join anyway?

    With kind regards,
    Andreas.

    [1] https://github.com/pycom/pycom-micropython-sigfox/blob/Dev/esp32/mods/modlora.c#L1841-L1844



  • Dear @sita,

    decoding the core dump shows (without guarantee):

    ==================== CURRENT THREAD STACK =====================
    #0  0x4009192e in vTaskExitCritical (mux=0x844a) at /Users/iwahdan/esp/pycom-esp-idf/components/freertos/tasks.c:4274
    #1  0x401124f0 in lora_join (n_args=1073518712, pos_args=0x3ffc990c <lora_partial_rx_packet+12>, kw_args=0x401124f0 <lora_join+16>) at mods/modlora.c:1843
    
    ======================== THREADS INFO =========================
      Id   Target Id         Frame
      16   process 15        0x4000bff0 in ?? ()
      15   process 14        xQueueCreateCountingSemaphoreStatic (uxMaxCount=1073426000, uxInitialCount=1073431200, pxStaticQueue=0x3ffb2e9c) at /Users/iwahdan/esp/pycom-esp-idf/components/freertos/queue.c:659
      14   process 13        xQueueCreateCountingSemaphoreStatic (uxMaxCount=1073495820, uxInitialCount=0, pxStaticQueue=0x3ffc3f58 <vflash_mem+1900>) at /Users/iwahdan/esp/pycom-esp-idf/components/freertos/queue.c:659
      13   process 12        xQueueCreateCountingSemaphoreStatic (uxMaxCount=1073444348, uxInitialCount=0, pxStaticQueue=0x3ffb7648) at /Users/iwahdan/esp/pycom-esp-idf/components/freertos/queue.c:659
      12   process 11        0x4000bff0 in ?? ()
      11   process 10        xQueueCreateCountingSemaphoreStatic (uxMaxCount=1073458244, uxInitialCount=1073580336, pxStaticQueue=0x3ffbac90) at /Users/iwahdan/esp/pycom-esp-idf/components/freertos/queue.c:659
      10   process 9         xQueueCreateCountingSemaphoreStatic (uxMaxCount=1073445832, uxInitialCount=0, pxStaticQueue=0x3ffb7c14) at /Users/iwahdan/esp/pycom-esp-idf/components/freertos/queue.c:659
      9    process 8         xQueueCreateCountingSemaphoreStatic (uxMaxCount=1073589088, uxInitialCount=1073603328, pxStaticQueue=0x3ffdabac) at /Users/iwahdan/esp/pycom-esp-idf/components/freertos/queue.c:659
      8    process 7         0x4000bff0 in ?? ()
      7    process 6         0x40092b55 in xTaskNotify (xTaskToNotify=0x0, ulValue=<optimized out>, eAction=<optimized out>) at /Users/iwahdan/esp/pycom-esp-idf/components/freertos/tasks.c:4872
      6    process 5         0x4009192e in vTaskExitCritical (mux=0x8484) at /Users/iwahdan/esp/pycom-esp-idf/components/freertos/tasks.c:4274
      5    process 4         xQueueCreateCountingSemaphoreStatic (uxMaxCount=1073468564, uxInitialCount=1073458080, pxStaticQueue=0x3ffbd4e0) at /Users/iwahdan/esp/pycom-esp-idf/components/freertos/queue.c:659
      4    process 3         0x40206db2 in API_vhci_host_check_send_available ()
      3    process 2         xQueueCreateCountingSemaphoreStatic (uxMaxCount=1073470132, uxInitialCount=0, pxStaticQueue=0x3ffbdb00) at /Users/iwahdan/esp/pycom-esp-idf/components/freertos/queue.c:659
      2    process 1         0x4009192e in vTaskExitCritical (mux=0x844a) at /Users/iwahdan/esp/pycom-esp-idf/components/freertos/tasks.c:4274
    * 1    <main task>       0x4009192e in vTaskExitCritical (mux=0x844a) at /Users/iwahdan/esp/pycom-esp-idf/components/freertos/tasks.c:4274
    

    So, it seems to happen while performing lora_join within mods/modlora.c.

    // check for the correct lora radio mode
    if (lora_obj.stack_mode != E_LORA_STACK_MODE_LORAWAN) {
        nlr_raise(mp_obj_new_exception_msg(&mp_type_OSError, mpexception_os_request_not_possible));
    }
    

    I assume this is some synchronization issue wrt. the code is already doing other things.
    Maybe waiting for successfully joining the LoRaWAN network helps like outlined within [1] before doing other operations.

    Forget about my last words. I believe this is wrong as I've probably used the wrong application.elf file for decoding the core dump -- see next post(s).

    I just recognized you are using pure LoRa instead of LoRaWAN....

    @sita said in Guru Meditation Error:

    lora = LoRa(mode=LoRa.LORA, region=LoRa.EU868, frequency=433000000, power_mode=LoRa.ALWAYS_ON, tx_power=10, bandwidth=LoRa.BW_125KHZ, sf=8, preamble=8, coding_rate=LoRa.CODING_4_8)
    

    ... so who should be actually invoking lora_join anyway ;].

    With kind regards,
    Andreas.

    P.S.: To be safe that the core dump decoding gives us the correct results: Are you using lopy4-vanilla-dragonfly-onewire or lopy4-vanilla-dragonfly-onewire-i2s?



  • I am also seeing Guru Meditation Errors with latest firmware v1.20.1.r2 and vanilla releases.
    Here's just a few:

    Guru Meditation Error: Core 1 panic'ed (Unhandled debug exception)
    Guru Meditation Error: Core 0 panic'ed (IllegalInstruction). Exception was unhandled.
    Guru Meditation Error: Core 0 panic'ed (IllegalInstruction). Exception was unhandled.

    The code makes heavy use of the UARTs and runs flawlessly on desktop.



  • @andreas

    Below is the coredump that i got in my Atom IDE for the guru meditation error.

    rst:0xc (SW_CPU_RESET),boot:0x12 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0xee
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:DIO, clock div:1
    load:0x3fff8020,len:8
    load:0x3fff8028,len:2136
    load:0x4009fa00,len:19860
    entry 0x400a05d0
    Guru Meditation Error: Core  1 panic'ed (LoadProhibited). Exception was unhandled.
    Core 1 register dump:
    PC      : 0x400933c3  PS      : 0x00060033  A0      : 0x80092079  A1      : 0x3ffbf060
    A2      : 0x3ffbb8d8  A3      : 0x00060023  A4      : 0x3ffc44a4  A5      : 0x00000001
    A6      : 0x000000fe  A7      : 0x00000000  A8      : 0x00000000  A9      : 0x3ffbb8d8
    A10     : 0x3ffbb8d8  A11     : 0x00000000  A12     : 0x800fd97c  A13     : 0x3ffd79a0
    A14     : 0x3f403ce4  A15     : 0x00000002  SAR     : 0x00000003  EXCCAUSE: 0x0000001c
    EXCVADDR: 0x00000004  LBEG    : 0x400ecf08  LEND    : 0x400ecf4b  LCOUNT  : 0x00000000
    Core 1 was running in ISR context:
    EPC1    : 0x400933c3  EPC2    : 0x00000000  EPC3    : 0x00000000  EPC4    : 0x40087b2e
    
    Backtrace: 0x400933c3:0x3ffbf060 0x40092076:0x3ffbf080 0x40090a0d:0x3ffbf0a0 0x40089529:0x3ffbf0c0 0x40083be9:0x3ffbf100 0x400ff4ac:0x3ffd7930 0x400e6a17:0x3ffd7950 0x401014de:0x3ffd7980 0x400fd90d:0x3ffd79a0 0x400fd979:0x3ffd79c0 0x4010991b:0x3ffd79e0 0x401015d4:0x3ffd7a80 0x400fd90d:0x3ffd7ab0 0x400fd93a:0x3ffd7ad0 0x400e1aa5:0x3ffd7af0 0x400e1d35:0x3ffd7b90 0x400e0799:0x3ffd7bb0
    
    ================= CORE DUMP START =================
    7DIAABAAAABsAQAA
    /B39PwAc/T/0Hf0/
    ABz9P5Ad/T9KhAAAaEH8P2hB/D/8Hf0/YEH8PxMAAABmozd+Dukx8vwd/T8AAAAA
    BgAAAPgN/T9Mb1JhAK29WrtYZS52oIoAAQAAAPQd/T8AAAAAIQAGAAYAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAADUZPs/PGX7P6Rl+z8AAAAAAAAAAAEAAAAAAAAA
    n5JAPwAAAACokQlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJbrrw==
    hDkIQC4ZCUAwDQYA8CQRgMAc/T9KhAAAaPX7P9gX/j8AAAAAAAAAAAAAAAAuGQmA
    oBz9PwEAAABKhAAA/B39PwEAAAD+AAAAEAAAAA4AAACLVgiAgBz9PwKKCUANiglA
    AAAAAIQ7CEABAAAABC0JQFgu+j8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAEBA/D8BAAAA/gAAAAEAAAAAAAAA4Bz9P3iY/D8Mmfw/
    2Bf+PwAAAAAAAAAAAAAAAAAAAACQHf0/AAAAAAAAAAAIAAAAAAAAAAAAAAABAAAA
    AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAACEOwhAAAAAAAQtCUBYLvo/AAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAGNM5gEAAAAAAAAAAAAAAABQQEE//BL8PwyZ/D+h////
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnB39PwAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAA=
    8Kn9P4Co/T/oqf0/
    gKj9P4Cp/T9KhAAAVEH8P1RB/D/wqf0/TEH8PxQAAADMMf4/zDH+P/Cp/T8AAAAA
    BQAAAOyZ/T9TZXJ2ZXJzAHLAyj+H2LwAAQAAAOip/T8AAAAAIQAGAAUAAAAAAAAA
    vH/7PwAAAAAAAAAAAAAAAAsAAADUZPs/PGX7P6Rl+z8AAAAAAAAAAAEAAAAAAAAA
    n5JAPwAAAACokQlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALrJPQ==
    hDkIQC4ZCUAwDQYA4AgOgECp/T9KhAAAaPX7PwIAAAAA/wAAAAD/AAAAAP8uGQmA
    IKn9PwEAAABKhAAA8Kn9PwEAAAD+AAAAIwAGAAAAAACfCA6AMKn9P2iICUCEiAlA
    /////4Q7CEABAAAABC0JQEi6+j8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAABgqf0/TPf7PwAAAAAAAAAAYKn9PwAAAAABAAAA
    OG5APwD/AAAAAP8AAAAA/wAAAACAqf0/AAAAAAAAAAAAAAAAAQAAAB5J/D8AAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjKn9PwAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    vLj7P5C2+z+0uPs/
    kLb7P1C4+z+7TnWgOL77P/BA/D+8uPs/6ED8PxkAAADYuPs/2Lj7P7y4+z8AAAAA
    AAAAALi0+z9JRExFMACSxHiuLBjBQ1kAAAAAALS4+z8AAAAAIAcGAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAADUZPs/PGX7P6Rl+z8AAAAAAAAAAAEAAAAAAAAA
    n5JAPwAAAACokQlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzi2A==
    hDkIQFALCUAwDwYA1HcWgFC3+z+02vs/AAAAAADb+z8AAAAAtNr7PwEAAABQCwmA
    MLf7PwAAAAD/////aPX7P9xC/D/+AAAAAAAAAAoAAACEOQhAtGUgQAjPDkBLzw5A
    AAAAAIQ7CEDcQvw/BC0JQBjJ+D8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAOC3+z8AAAAAAAAAAAAAAABdzw6AkLf7PwEAAABAAAAA
    AAAAAIOEAAAAAAAAAAAAAP////8AgAAA//8AgAoAAADgt/s/AAAAAAjPDkBLzw5A
    KDsPgMC3+z8AAAAAAQAAAAAAAAAoYPU/yJD8PwAAAAAYAAAAAAAAALzj/T8BAAAA
    TMUWgOC3+z+wkPw/AQAAAAAAAAAJAAAAAIAAAP//AIAMGwmAALj7PwAAAAABAAAA
    AAAAAKCu+z8g9fs/IAgGAAAAAAAguPs/AAAAAHhA/D8AAAAASNv8P9xC/D8AAAAA
    AAAAAFC4+z8AAAAAAAAAAGj1+z8AAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXLj7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAA=
    ML77P5C8+z8ovvs/
    kLz7P8C9+z8tlv+U8ED8P8S4+z8wvvs/6ED8PxkAAAA2AEMQSyhLiTC++z8AAAAA
    AAAAACy6+z9JRExFMQDeKCrXPFVSqsEAAQAAACi++z8AAAAAIwAGAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAADUZPs/PGX7P6Rl+z8AAAAAAAAAAAEAAAAAAAAA
    n5JAPwAAAACokQlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACiJA==
    hDkIQLJtIEAwCwYAXsUWgFC9+z8AAAAA8ED8PzMCCYCAvPs/AwAAACMABgAjAAYA
    kPD7PyAAAAAgAAAA//8/s6urAAADAAAAIwAGAAAAAACQvfs/AAAAAAAAAAAAAAAA
    AAAAAIQ7CECrqwAABC0JQIjO+D8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAACEOwhASNv8PwQtCUAMGwmAcL37PyAAAAABAAAA
    //8/swAAAAAAAAAAAAAAAAAAAACQvfs/AAAAAHhA/D8gAAAASNv8P+BC/D8AAAAA
    AAAAAMC9+z8AAAAAAAAAAGj1+z8AAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzL37PwAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    bNX7P0Cq+z88rPs/
    QKr7P9Cr+z/IhAAA3ED8P+w6/T9s1fs/1ED8PwcAAADA1Ps/wNT7P2zV+z+41Ps/
    EgAAAECe+z90aVQAEgAAAAAAAAAAAAAAAAAAADys+z8AAAAAIQAGABIAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAADUZPs/PGX7P6Rl+z8AAAAAAAAAAAEAAAAAAAAA
    n5JAPwAAAACokQlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
    hDkIQFALCUAwDwYAeYgYgACr+z+U1Ps/oKv7P+DU+z8AAAAA6NT7PwAAAABQCwmA
    4Kr7PwAAAABkAAAAaPX7P9xC/D/+AAAAAAAAABAAAAABAAAA/gAAAM19GEDWfRhA
    AAAAAIQ7CEDcQvw/BC0JQJi8+D8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAALwIGIAQq/s/HOtBPwAAAAB7ChiAQKv7P/////+gq/s/
    AAAAAGSEAABkAAAAzAkYQGQAAAAAq/s//gAAAAAAAADEChiAUKv7PxAAQj9sYfs/
    Y5QXgHCr+z/A3vw/oKv7P2OUF4Bwq/s/wN78P6Cr+z9kAAAA/////2SEAAAAAAAA
    AAAAAKCr+z9EqRdAAAAAAMwJGEAQAEI/RKkXQAAAAABY5fw/WOX8P1Tl/D9U5fw/
    AAAAANCr+z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3Kv7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
    5Dr9P9A4/T/cOv0/
    0Dj9P3A6/T+EhAAAdNX7P9xA/D/kOv0/1ED8PxMAAACMQ/ta1QwgEuQ6/T8AAAAA
    BgAAAOAs/T9TaWdmb3gAJvt6AwCUiIMAAAAAANw6/T8AAAAAIQAGAAYAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAADUZPs/PGX7P6Rl+z8AAAAAAAAAAAEAAAAAAAAA
    n5JAPwAAAACokQlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANKNuw==
    hDkIQC4ZCUAwAQYAmtMegJA5/T+EhAAAaPX7P9Am/j8AAAAAAAAAAAAAAAAuGQmA
    cDn9PwAAAACEhAAA5Dr9PwEAAAD+AAAAIwAGABEAAAA4S/o/AAAAAAAAAAAAAAAA
    AAAAAIQ7CEABAAAABC0JQDhL+j8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAP//P7MAAAAAAAAAAAAAAAAAAAAAsDn9P4Do/D986Pw/
    0Cb+PwAAAAAAAAAAAAAAAAAAAABwOv0/AAAAAAAAAACEOQhAgNMeQDAABQAAAAAA
    cDr9PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    OEv6PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHw6/T8AAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
    nMr7P0DJ+z+Uyvs/
    QMn7PzDK+z8AAAAAyED8P8hA/D+cyvs/wED8Pw8AAADMv/s/zL/7P5zK+z/Ev/s/
    CgAAAJjA+z9UbXIgU3ZjAPqsJsW66/YAAAAAAJTK+z8AAAAAIQAGAAoAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAADUZPs/PGX7P6Rl+z8AAAAAAAAAAAEAAAAAAAAA
    n5JAPwAAAACokQlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQ6JA==
    hDkIQFUrCUAwAAYAAAAAAADK+z8AAAAAAAAAAAAAAADsQvw/5EL8PwoAAABVKwmA
    4Mn7PwAAAABo9fs/QED8PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAIQ7CEAAAAAABC0JQPja+D8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAPja+D8AAAAAAAAAAAAAAAAAAAAAMMr7PwAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAA8yvs/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAA==
    vLz9PyC7/T+0vP0/
    ILv9P1C8/T8AAAAAUML9P2zY+z+8vP0/ZED8PxQAAADUvP0/AAAAALy8/T8AAAAA
    BQAAALis/T9Tb2NrZXQgT3BlcmF0aW8AAQAAALS8/T8AAAAAIQAGAAUAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAADUZPs/PGX7P6Rl+z8AAAAAAAAAAAEAAAAAAAAA
    n5JAPwAAAACokQlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAJrz0g==
    hDkIQPC/AEAwAAYAOhQJgOC7/T8AAAAAIwAGACAABgAwe/0/VQAAAFCZ/T///z+z
    q6sAACD1+z8jAAYAvLz9PwEAAAD+AAAAAAAAAAAAAAClpaWlpaWlpQAAAAAAAAAA
    AAAAAIQ7CEABAAAABC0JQBjN+j8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCJQmA8Lv9P2j1+z8GAAAA
    5mQOgBC8/T8BAAAA4EL8P7y8/T8BAAAA/gAAALCd+z8AAAAAMLz9PwAAAAAAAAAA
    3EL8P2j1+z9QQPw/VEH8PwAAAABQvP0/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXLz9PwAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAA=
    SML9P6Dh/T+04/0/
    oOH9P1Dj/T8AAAAAKHz7P8S8/T9Iwv0/ZED8Pw4AAACMq/0/jKv9P0jC/T+Eq/0/
    CwAAALjD/T9JUlFzAAAAAAAAAAAAAAAAAQAAALTj/T8AAAAAIQAGAAsAAAAAAAAA
    AAAAAOzi/T8AAAAAAAAAAAAAAADUZPs/PGX7P6Rl+z8AAAAAAAAAAAEAAAAAAAAA
    n5JAPwAAAACokQlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqWlpQ==
    hDkIQFALCUAwBQYAGD4PgGDi/T9gq/0/AOP9P6yr/T8AAAAAtKv9PwAAAABQCwmA
    QOL9PwEAAAD/////aPX7P9xC/D/+AAAAAAAAAAAAAAAY9Po/AAAAAAAAAAAAAAAA
    AAAAAIQ7CEDcQvw/BC0JQBj0+j8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAABCAAAApaWlpaWlpaWUDg6AoOL9PziR/D8A4/0/
    AAAAAGEAAAClpaWlpaWlpf////+g4v0/ZJT8PwDj/T8AAAAAAQAAACyR/D9EEfw/
    AAAAADDj/T8skfw/AAAAAFDj/T8AAAAAAAAAAAAAAAAAAAAALJH8PwAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4/0/
    ABwAAAST/D8Ek/w/AAAAABj0+j8AAAAAAAAAAAAAAAAEk/w/CgAAAFBA/D/MQfw/
    AAAAAFDj/T8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAABc4/0/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAA==
    IHz7P7Cc+z84nvs/
    sJz7P9Cd+z+DtIl4pLL7P1DC/T8gfPs/ZED8PwEAAAD0e/s/9Hv7PyB8+z/se/s/
    GAAAADya+z9pcGMxAJ0FQOZBwVEXuaIAAQAAADie+z8AAAAAIQAGABgAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAADUZPs/PGX7P6Rl+z8AAAAAAAAAAAEAAAAAAAAA
    n5JAPwAAAACokQlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyuRg==
    hDkIQFALCUAwBQYAECAIgHCd+z/Ie/s/AAAAABR8+z8AAAAAyHv7PwAAAABQCwmA
    UJ37PwEAAAD/////aPX7P9xC/D/+AAAAIAMGABwAAAD//z+zAAAAAAAAAAAAAAAA
    AAAAAIQ7CEDcQvw/BC0JQJiu+D8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAACB8+z8BAAAA/gAAACMABgAAAAAAsJ37P7w//D8AAAAA
    AAAAANQEAAD+AAAAIAMGAP////8AAAAAvD/8P6g//D/wdfs/AAAAAAEAAAAAAAAA
    AAAAANCd+z8AAAAAAAAAAPB6CEABAAAAAAAAAAAAAAC9FAiAgH3+PwABAADoDQBA
    AAAAAAAAAADcnfs/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAA=
    nLL7PzCI/T/gif0/
    MIj9P4CJ/T8BAAAAeCv9Pyh8+z+csvs/ZED8PwUAAABwrPs/cKz7P5yy+z9orPs/
    FAAAAOR9/T9ldmVudFRhc2sAAAAAAAAAAAAAAOCJ/T8AAAAAIQAGABQAAAAAAAAA
    KDX7PwAAAAAAAAAAAAAAAAAAAADUZPs/PGX7P6Rl+z8AAAAAAAAAAAEAAAAAAAAA
    n5JAPwAAAACokQlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
    hDkIQFALCUAwAgYAPMQWgPCI/T9ErPs/MIn9P5Cs+z8AAAAAmKz7PwAAAABQCwmA
    0Ij9PwAAAAD/////aPX7P9xC/D/+AAAAIAAGAAAAAADQiP0/3Ij9P2iICUCEiAlA
    /////4Q7CEDcQvw/BC0JQEia+j8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAMCoBAH///8AwKgEATxxv4cAAAAAMIn9PwDb/D8AAAAA
    AAAAAAwFAAD+AAAAIAAGAP////8wif0/ANv8PwAAAACQrPs/AAAAAGiy+z8BAAAA
    AAAAAICJ/T8AAAAAAAAAAA4AAADAQfs/AQEAANT1/D8GAAAAzgi8P///AAA0BgAA
    vH5BPzwAAAACAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAACMif0/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    cCv9P8Ap/T9oK/0/
    wCn9PwAr/T+8srNtYHr7P6Sy+z9wK/0/ZED8PxEAAABccboJBQl95HAr/T8AAAAA
    CAAAAGwf/T9Mb1JhX1RpbWVyX2NhbGwAAQAAAGgr/T8AAAAAIQAGAAgAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAADUZPs/PGX7P6Rl+z8AAAAAAAAAAAEAAAAAAAAA
    n5JAPwAAAACokQlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAHBlyA==
    hDkIQPC/AEAwAAYAOhQJgIAq/T8AAAAAIwAGACAABgAgcP0/AwAAACMLBgD//z+z
    q6sAACD1+z8jAAYAcCv9PwEAAAD+AAAAAQAAAAAAAAClpaWlpaWlpQAAAAAAAAAA
    AAAAAIQ7CEABAAAABC0JQMg7+j8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCJQmAkCr9P2j1+z8HAAAA
    3Q8RgLAq/T8BAAAA4EL8P3Ar/T8BAAAA/gAAACALBgAAAAAA0Cr9PwAAAAAAAAAA
    3EL8P2j1+z9QQPw/kEH8PwAAAAAAK/0/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwr/T8AAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
    WHr7P9B4+z9Qevs/
    0Hj7P/B5+z9bG56ThHL7P3gr/T9Yevs/ZED8PwEAAAAodvs/KHb7P1h6+z8gdvs/
    GAAAAFR2+z9pcGMwAKcnkoDUgBY5q6QAAAAAAFB6+z8AAAAAIQAGABgAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAADUZPs/PGX7P6Rl+z8AAAAAAAAAAAEAAAAAAAAA
    n5JAPwAAAACokQlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOCIJQ==
    hDkIQFALCUAwAQYAECAIgJB5+z/8dfs/AAAAAEh2+z8AAAAA/HX7PwAAAABQCwmA
    cHn7PwAAAAD/////aPX7P9xC/D/+AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAIQ7CEDcQvw/BC0JQLiK+D8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAGj1+z/cQvw//gAAAAEAAAAAAAAA0Hn7P7g//D8AAAAA
    AAAAAGELAAD+AAAAAQAAAP////8AAAAAuD/8P6g//D9Idvs/AAAAAPx1+z8AAAAA
    AAAAAPB5+z8AAAAAAAAAAPB6CEAAAAAAAAAAAAAAAAAhFAiAMDz+P0xA/D+XdEA/
    AAAAAAAAAAD8efs/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    fHL7P/Bw+z90cvs/
    8HD7PxBy+z+3laR7TEP7P2B6+z98cvs/ZED8PwMAAAA4P/w/OD/8P3xy+z8wP/w/
    FgAAAHhm+z9lc3BfdGltZXIA/0uahkQAAAAAAHRy+z8AAAAAIQAGABYAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAADUZPs/PGX7P6Rl+z8AAAAAAAAAAAEAAAAAAAAA
    n5JAPwAAAACokQlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJZfvg==
    hDkIQFALCUAwAQYAkCMNgLBx+z8MP/w/AAAAAFg//D8AAAAADD/8PwAAAABQCwmA
    kHH7PwAAAAD/////aPX7P9xC/D/+AAAAAAAAAAAAAAD/////hDsIQGiICUCEiAlA
    /////4Q7CEDcQvw/BC0JQNiC+D8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAKkYCICwcfs/MPX7PwAAAAAAAAAA8HH7P2Q//D9sP/w/
    AAAAAECEAAD+AAAAAAAAAP/////wcfs//F77P2w//D939AcCOPX7P3f0BwIAAAAA
    AAAAABBy+z8AAAAAAAAAAAAAAAAAAAAAYD/8P2w//D8AAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAccvs/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAA==
    REP7P3BB+z88Q/s/
    cEH7P9BC+z+zJhymbED8P4Ry+z9EQ/s/ZED8PwIAAAB8Lvs/fC77P0RD+z90Lvs/
    FwAAAEA1+z93aWZpALqbfav+sgPU8R4AAAAAADxD+z8AAAAAIQAGABcAAAABAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAADUZPs/PGX7P6Rl+z8AAAAAAAAAAAEAAAAAAAAA
    n5JAPwAAAACokQlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANPmnQ==
    hDkIQFALCUAwDwYAecIWgDBC+z9QLvs/oEL7P5wu+z8AAAAApC77PwAAAABQCwmA
    EEL7PwAAAAD/////aPX7P9xC/D/+AAAAAAAAABwAAACZ6xOAUEL7P2iICUCEiAlA
    /////4Q7CEDcQvw/BC0JQJhT+D8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAKviFIBAQvs/AAAAAJCZCEBtxyCAcEL7P1Au+z+gQvs/
    AAAAAEKEAADwIgzAACAMAP////9sE/w/iLT8PwAAAAAAAAAAkEL7P2wT/D94FPw/
    AAAAAJBC+z9sE/w/eBT8P/////8AAAAAxAAAAHgG/D8AAAAA0EL7PwAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAWAP9PxoAAABwE/w/
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3EL7PwAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
    ZNj7P1CY/T/kmf0/
    UJj9P4CZ/T/E2Ps/xLz9P2xA/D9k2Ps/ZED8PxQAAACI2Ps//////2TY+z8AAAAA
    BQAAAOiJ/T9TbWFydENvbmZpZwABAAAAAQAAAOSZ/T8AAAAAIQAGAAUAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAADUZPs/PGX7P6Rl+z8AAAAAAAAAAAEAAAAAAAAA
    n5JAPwAAAACokQlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAA==
    hDkIQPC/AEAwAAYAOhQJgBCZ/T8AAAAAIwAGACAABgAAnfs/AwAAACMDBgD//z+z
    q6sAACD1+z8jAAYAZNj7PwEAAAD+AAAARAEAAAAAAAClpaWlpaWlpQAAAAAAAAAA
    AAAAAIQ7CEABAAAABC0JQEiq+j8AAAAAAAAAAAAAAAD//z+zAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCJQmAIJn9P2j1+z8FAAAA
    D3QOgECZ/T8BAAAA4EL8P2TY+z8BAAAA/gAAACADBgAAAAAAYJn9PwAAAAAAAAAA
    3EL8P2j1+z9QQPw/VEH8PwAAAACAmf0/AAAAAAAAAAAATvw/AAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJn9PwAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAA=
    ================= CORE DUMP END =================
    E (9009) esp_core_dump: Skipped 1 tasks with bad TCB!
    E (9014) esp_core_dump: Crashed task has been skipped!
    Rebooting...
    ets Jun  8 2016 00:22:57
    

    I'm trying to send loraraw data packets with GPS, timestamp along with a integer( to calculate the packet loss) in them. Once the data is sent, the same will also be stored in the SD card. After no fixed amount of time, the sender module crashes with guru meditation error, but will restart itself to send the data packets. So i'm seeing a break in the integer number, which will restart from 0 after this error. The sender module code that I wrote is as follows:

    import machine
    import math
    import network
    import os
    import time
    import utime
    import gc
    import socket
    import pycom
    import ustruct
    #from machine import RTC
    from machine import SD
    from L76GNSS import L76GNSS
    from pytrack import Pytrack
    from network import LoRa
    from math import ceil
    
    sd = SD()
    os.mount(sd, '/sd')
    os.listdir('/sd')
    
    #time.sleep(2)
    gc.enable()
    
    py = Pytrack()
    l76 = L76GNSS(py)
    
    lora = LoRa(mode=LoRa.LORA, region=LoRa.EU868, frequency=433000000, power_mode=LoRa.ALWAYS_ON, tx_power=10, bandwidth=LoRa.BW_125KHZ, sf=8, preamble=8, coding_rate=LoRa.CODING_4_8)
    # create a raw LoRa socket
    s = socket.socket(socket.AF_LORA, socket.SOCK_RAW)
    
    
    i = 0
    while True:
        coord = l76.coordinates()
        gps_datetime = l76.get_datetime()
        lat,lon = coord
    
        timestamp =('20' + gps_datetime[4][4] + gps_datetime[4][5]+gps_datetime[4][2] + gps_datetime[4][3]+gps_datetime[4][0] + gps_datetime[4][1]+gps_datetime[2][0] + gps_datetime[2][1]+gps_datetime[2][2] + gps_datetime[2][3]+gps_datetime[2][4] + gps_datetime[2][5] )
    
        #s.setblocking(True)
        value = i
        message = ''+str(lat)+','+str(lon)+','+str(timestamp)+','+str(value)
        pycom.heartbeat(True)
        s.send(message)
        i = i+ 1
        print(message)
        pycom.heartbeat(False)
        pycom.rgbled(0xff00)
        f = open('/sd/A_3001SF8.txt', 'a+')
        f.write(message)
        f.write(' ')
        f.write('\n')
        f.close()
    
    

    Kindly please have a look into this issue and guide me so i can continue my work to calculate the packet loss etc., Thanks a lot in advance and have a nice day.

    Best Regards,
    Sita



  • Dear @sita,

    I got an issue again with this Guru meditation error.

    @andreas said in Guru Meditation Error:

    If core panics are still happening, I will be happy to receive respective core dumps from it. If you could share the MicroPython code it would even be better in order to reproduce the problem.

    With kind regards,
    Andreas.



  • Hello @andreas,

    I got an issue again with this Guru meditation error. While sending the data suddenly this error is coming, if i switch off and on the battery data is transferring normally. Because of this discontinuity i am not able to calculate the packet loss. Is there any solution for this ?



  • @sita said in Guru Meditation Error:

    Now it is working fine, data also receiving now. :)

    Thanks for letting me know. Please tell me if things are still stable after longer runtimes.



  • Hello @andreas,

    i have done the procedure according to [1] and vanilla Dragonfly build also done again. Now it is working fine, data also receiving now. :):)
    Thank you once again for the immediate responses.

    [1] https://community.hiveeyes.org/t/core-panics-with-the-dragonfly-build-on-the-lopy4/2878



  • Dear @sita,

    others are observing similar things on the LoPy4, even with the Dragonfly builds [1]. Are there any chances you could share the MicroPython code and respective core dumps you are receiving while running Dragonfly?

    Regarding

    Smart Provisioning started in the background.

    Are you sure you have been running the vanilla Dragonfly build here? It actually looks like a Pybytes variant. Please try again using the vanilla variant.

    Thanks already and with kind regards,
    Andreas.

    [1] https://community.hiveeyes.org/t/core-panics-with-the-dragonfly-build-on-the-lopy4/2878



  • @sita The best method for a factory reset is performing a full flash erase using esptool.py.
    Using a previous firmware release will get you away from the pybytes stuff. Since the flash use between v1.20.x and the previous ones has changed, a flash erase is useful anytime you cross that version border.



  • @robert-hh Thanks for the immediate response.
    I have checked all the parameters and they are same for both the devices. And i have connected antennas also right way,still i am not reeving any data and getting same problem again (Guru Meditation Error: Core 0 panic'ed) :(

    one more problem is the below one is not working for factory reset.
    import os
    os.mkfs('/flash')

    one question is , if i downgrade the firmware is there any use ?? if so which version is preferable ?



  • @sita Please check, that:
    a) you have set both device to the same communication parameters, like frequency, spreading factor, bandwidth
    b) that you use the right antenna connector
    c) that you start both device with power-up or hard reset.



  • @robert-hh Thanks for the information. After adding that pybytes_config.json file also i am not received data,only getting this message(shown in the below fig). My project is mainly focusing on the received data and i have to analyze it. so could you please help me with this problem.

    Thanks in advance
    pybytes.jpg



  • @sita That's fine now. Pybytes does not start, and the AP should be enabled. If you use Pybytes, then you might set that to true again. I have not documentation about the mechanism. I had to reverse-engineer that method of disabling. Pycom also did not say or write anything about it. It seems very unfriendly to push it's customers into a non-working configuration.



  • @robert-hh
    Thanks for response but i am not fully aware of pybytes_config.json. I just placed a file on the device and in that file i have kept { "pybytes_autostart": false }.
    I got response like this(shown in the below image). I am not sure whether it is right or wrong!!!
    Could i get any document or web link related to this issue so that i will do accordingly.

    Thanks in advance

    pybytes.jpg



  • @sita "Smart Provisioning" is done by the Pybytes firmware, which makes the device hard to use if you do not need it. The firmware images provided by @andreas do not have that. You can disable it by placing a file on you device with the name pybytes_config.json, and the content:

    { "pybytes_autostart": false }
    


  • Hello @andreas,

    Thanks for the immediate response. I have erased the device using [1] and updated the new firmware.
    But now i got another issue;
    I am doing pure LoRa communication (Lopy4 to Lopy4 only). I kept one Lopy4 as transmitter and other as receiver. Transmitter sending data without any problem but receiver is not receiving the data, it is giving message like this

    rx.jpg

    I do not have any idea regarding smart provisioning. Could you please suggest me how to overcome this issue.
    Thanks in advance

    [1] https://community.hiveeyes.org/t/testing-the-custom-dragonfly-builds-on-pycom-devices/2746



  • Dear @sita,

    you might want to try one of our dragonfly builds [1]. Some have been successful mitigating spurious core panics with it.

    If core panics are still happening, I will be happy to receive respective core dumps from it. If you could share the MicroPython code it would even be better in order to reproduce the problem.

    With kind regards,
    Andreas.

    [1] https://community.hiveeyes.org/t/testing-the-custom-dragonfly-builds-on-pycom-devices/2746


Log in to reply
 

Pycom on Twitter