diff --git a/SConstruct b/SConstruct index 48baaa95e..298954fd6 100644 --- a/SConstruct +++ b/SConstruct @@ -322,7 +322,12 @@ firmware_env.Append( "SConstruct", "firmware.scons", "fbt_options.py", - ] + ], + IMG_LINT_SOURCES=[ + # Image assets + "applications", + "assets", + ], ) @@ -359,6 +364,39 @@ distenv.PhonyTarget( PY_LINT_SOURCES=firmware_env["PY_LINT_SOURCES"], ) +# Image assets linting +distenv.PhonyTarget( + "lint_img", + [ + [ + "${PYTHON3}", + "${FBT_SCRIPT_DIR}/imglint.py", + "check", + "${IMG_LINT_SOURCES}", + "${ARGS}", + ] + ], + IMG_LINT_SOURCES=firmware_env["IMG_LINT_SOURCES"], +) + +distenv.PhonyTarget( + "format_img", + [ + [ + "${PYTHON3}", + "${FBT_SCRIPT_DIR}/imglint.py", + "format", + "${IMG_LINT_SOURCES}", + "${ARGS}", + ] + ], + IMG_LINT_SOURCES=firmware_env["IMG_LINT_SOURCES"], +) + +distenv.Alias("lint_all", ["lint", "lint_py", "lint_img"]) +distenv.Alias("format_all", ["format", "format_py", "format_img"]) + + # Start Flipper CLI via PySerial's miniterm distenv.PhonyTarget( "cli", diff --git a/applications/debug/file_browser_test/icons/badusb_10px.png b/applications/debug/file_browser_test/icons/badusb_10px.png index 037474aa3..2b5a3bf97 100644 Binary files a/applications/debug/file_browser_test/icons/badusb_10px.png and b/applications/debug/file_browser_test/icons/badusb_10px.png differ diff --git a/applications/debug/infrared_test/application.fam b/applications/debug/infrared_test/application.fam new file mode 100644 index 000000000..bfd7cd5d4 --- /dev/null +++ b/applications/debug/infrared_test/application.fam @@ -0,0 +1,8 @@ +App( + appid="infrared_test", + name="Infrared Test", + apptype=FlipperAppType.DEBUG, + entry_point="infrared_test_app", + fap_category="Debug", + targets=["f7"], +) diff --git a/applications/debug/infrared_test/infrared_test.c b/applications/debug/infrared_test/infrared_test.c new file mode 100644 index 000000000..0187bd49d --- /dev/null +++ b/applications/debug/infrared_test/infrared_test.c @@ -0,0 +1,61 @@ +#include +#include + +#define TAG "InfraredTest" + +#define CARRIER_FREQ_HZ (38000UL) +#define CARRIER_DUTY (0.33f) + +#define BURST_DURATION_US (600UL) +#define BURST_COUNT (50UL) + +typedef struct { + bool level; + uint32_t count; +} InfraredTestApp; + +static FuriHalInfraredTxGetDataState + infrared_test_app_tx_data_callback(void* context, uint32_t* duration, bool* level) { + furi_assert(context); + furi_assert(duration); + furi_assert(level); + + InfraredTestApp* app = context; + + *duration = BURST_DURATION_US; + *level = app->level; + + app->level = !app->level; + app->count += 1; + + if(app->count < BURST_COUNT * 2) { + return FuriHalInfraredTxGetDataStateOk; + } else { + return FuriHalInfraredTxGetDataStateLastDone; + } +} + +int32_t infrared_test_app(void* arg) { + UNUSED(arg); + + InfraredTestApp app = { + .level = true, + }; + + FURI_LOG_I(TAG, "Starting test signal on PA7"); + + furi_hal_infrared_set_tx_output(FuriHalInfraredTxPinExtPA7); + furi_hal_infrared_async_tx_set_data_isr_callback(infrared_test_app_tx_data_callback, &app); + furi_hal_infrared_async_tx_start(CARRIER_FREQ_HZ, CARRIER_DUTY); + furi_hal_infrared_async_tx_wait_termination(); + furi_hal_infrared_set_tx_output(FuriHalInfraredTxPinInternal); + + FURI_LOG_I(TAG, "Test signal end"); + FURI_LOG_I( + TAG, + "The measured signal should be %luus +-%.1fus", + (app.count - 1) * BURST_DURATION_US, + (double)1000000.0 / CARRIER_FREQ_HZ); + + return 0; +} diff --git a/applications/debug/subghz_test/images/DolphinCommon_56x48.png b/applications/debug/subghz_test/images/DolphinCommon_56x48.png index 089aaed83..9cdc2e448 100644 Binary files a/applications/debug/subghz_test/images/DolphinCommon_56x48.png and b/applications/debug/subghz_test/images/DolphinCommon_56x48.png differ diff --git a/applications/debug/subghz_test/subghz_test_10px.png b/applications/debug/subghz_test/subghz_test_10px.png index 10dac0eca..77dc6d382 100644 Binary files a/applications/debug/subghz_test/subghz_test_10px.png and b/applications/debug/subghz_test/subghz_test_10px.png differ diff --git a/applications/debug/unit_tests/resources/unit_tests/subghz/dickert_mahs.sub b/applications/debug/unit_tests/resources/unit_tests/subghz/dickert_mahs.sub new file mode 100644 index 000000000..9737b71a6 --- /dev/null +++ b/applications/debug/unit_tests/resources/unit_tests/subghz/dickert_mahs.sub @@ -0,0 +1,7 @@ +Filetype: Flipper SubGhz Key File +Version: 1 +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: Dickert_MAHS +Bit: 36 +Key: 00 00 00 01 55 57 55 15 diff --git a/applications/debug/unit_tests/resources/unit_tests/subghz/dickert_raw.sub b/applications/debug/unit_tests/resources/unit_tests/subghz/dickert_raw.sub new file mode 100644 index 000000000..544fc7a1d --- /dev/null +++ b/applications/debug/unit_tests/resources/unit_tests/subghz/dickert_raw.sub @@ -0,0 +1,7 @@ +Filetype: Flipper SubGhz RAW File +Version: 1 +Frequency: 433920000 +Preset: FuriHalSubGhzPresetOok650Async +Protocol: RAW +RAW_Data: 112254 -62882 64 -8912 798 -844 416 -418 806 -850 396 -45206 440 -428 794 -442 804 -422 822 -810 414 -414 824 -832 412 -416 808 -848 376 -446 792 -846 382 -448 816 -828 410 -416 810 -844 382 -416 834 -818 410 -414 810 -856 408 -810 412 -836 384 -442 808 -814 402 -844 414 -834 378 -436 808 -844 396 -422 798 -844 416 -416 814 -404 812 -440 810 -842 396 -422 798 -840 414 -414 806 -850 398 -45210 450 -420 796 -436 780 -446 802 -848 380 -434 806 -846 400 -422 800 -840 410 -408 836 -812 414 -410 826 -840 378 -440 804 -848 396 -426 812 -810 426 -394 826 -844 414 -810 420 -834 378 -442 808 -832 412 -812 416 -830 410 -406 810 -844 400 -420 832 -810 414 -416 800 -446 798 -440 812 -808 426 -410 800 -836 412 -414 806 -836 412 -45216 450 -420 798 -434 806 -414 802 -846 382 -438 814 -832 410 -410 838 -834 396 -430 810 -842 394 -392 826 -840 414 -414 802 -850 396 -428 812 -842 394 -394 828 -842 414 -810 424 -812 392 -434 812 -844 398 -848 380 -844 408 -416 820 -810 414 -406 816 -836 412 -416 836 -414 816 -398 816 -840 420 -410 802 -844 416 -416 804 -824 410 -45232 446 -400 802 -442 810 -432 804 -842 396 -392 826 -842 410 -410 834 -818 378 -442 804 -854 406 -408 806 -838 408 -428 804 -844 396 -392 826 -840 410 -410 834 -810 414 -832 408 -834 380 -440 802 -826 410 -836 412 -838 396 -424 796 -842 414 -414 804 -848 396 -426 812 -412 814 -414 824 -832 410 -416 806 -848 382 -420 834 -814 422 -45228 416 -422 802 -446 810 -420 790 -846 382 -448 818 -828 408 -416 808 -848 382 -418 830 -816 410 -412 812 -856 410 -382 834 -846 382 -418 832 -818 408 -412 812 -856 408 -814 414 -838 396 -428 810 -808 424 -836 380 -844 404 -416 802 -840 424 -394 826 -840 414 -382 836 -412 822 -436 812 -806 424 -394 826 -844 416 -382 838 -816 402 -45228 438 -430 796 -444 806 -424 822 -810 412 -416 822 -832 412 -416 804 -844 408 -414 824 -812 412 -408 812 -834 410 -414 804 -848 408 -412 802 -840 424 -412 802 -834 412 -842 384 -848 396 -426 814 -808 424 -816 392 -866 382 -414 838 -816 414 -428 792 -846 380 -440 810 -438 812 -412 802 -846 380 -438 826 -840 380 -416 838 -814 404 -45226 450 -404 820 -408 806 -452 792 -848 382 -440 814 -832 410 -416 810 -846 378 -450 792 -846 380 -446 816 -830 410 -386 836 -846 376 -410 828 -846 380 -446 814 -828 410 -814 414 -836 396 -428 810 -842 394 -816 410 -836 406 -430 812 -810 426 -394 826 -838 +RAW_Data: 414 -414 808 -416 826 -438 814 -816 420 -414 834 -814 418 -418 808 -848 398 -45218 412 -438 824 -412 812 -418 832 -852 378 -446 782 -862 410 -386 838 -848 384 -420 836 -820 418 -414 814 -854 408 -388 838 -814 418 -422 836 -816 394 -434 812 -846 398 -850 380 -848 410 -418 822 -812 416 -850 368 -854 412 -418 810 -850 384 -422 834 -820 416 -414 812 -428 836 -412 804 -848 382 -450 818 -828 412 -418 808 -850 380 -45228 452 -420 798 -434 806 -416 834 -818 384 -440 810 -820 404 -420 834 -814 416 -418 834 -824 386 -442 810 -818 404 -420 834 -814 416 -418 834 -820 410 -414 810 -850 406 -812 414 -816 404 -420 818 -838 386 -848 394 -828 414 -414 838 -814 406 -420 820 -842 384 -446 794 -438 810 -412 802 -848 394 -432 812 -842 394 -392 830 -842 414 -105578 64 -1760 130 -196 130 -832 160 -128 62 -1278 194 -1316 230 -96 362 -64 64 -398 diff --git a/applications/debug/unit_tests/tests/subghz/subghz_test.c b/applications/debug/unit_tests/tests/subghz/subghz_test.c index 3e93ac4c3..abbcbd2b0 100644 --- a/applications/debug/unit_tests/tests/subghz/subghz_test.c +++ b/applications/debug/unit_tests/tests/subghz/subghz_test.c @@ -663,6 +663,13 @@ MU_TEST(subghz_decoder_mastercode_test) { "Test decoder " SUBGHZ_PROTOCOL_MASTERCODE_NAME " error\r\n"); } +MU_TEST(subghz_decoder_dickert_test) { + mu_assert( + subghz_decoder_test( + EXT_PATH("unit_tests/subghz/dickert_raw.sub"), SUBGHZ_PROTOCOL_DICKERT_MAHS_NAME), + "Test decoder " SUBGHZ_PROTOCOL_DICKERT_MAHS_NAME " error\r\n"); +} + //test encoders MU_TEST(subghz_encoder_princeton_test) { mu_assert( @@ -820,6 +827,12 @@ MU_TEST(subghz_encoder_mastercode_test) { "Test encoder " SUBGHZ_PROTOCOL_MASTERCODE_NAME " error\r\n"); } +MU_TEST(subghz_encoder_dickert_test) { + mu_assert( + subghz_encoder_test(EXT_PATH("unit_tests/subghz/dickert_mahs.sub")), + "Test encoder " SUBGHZ_PROTOCOL_DICKERT_MAHS_NAME " error\r\n"); +} + MU_TEST(subghz_random_test) { mu_assert(subghz_decode_random_test(TEST_RANDOM_DIR_NAME), "Random test error\r\n"); } @@ -871,6 +884,7 @@ MU_TEST_SUITE(subghz) { MU_RUN_TEST(subghz_decoder_nice_one_test); MU_RUN_TEST(subghz_decoder_kinggates_stylo4k_test); MU_RUN_TEST(subghz_decoder_mastercode_test); + MU_RUN_TEST(subghz_decoder_dickert_test); MU_RUN_TEST(subghz_encoder_princeton_test); MU_RUN_TEST(subghz_encoder_came_test); @@ -898,6 +912,7 @@ MU_TEST_SUITE(subghz) { MU_RUN_TEST(subghz_encoder_holtek_ht12x_test); MU_RUN_TEST(subghz_encoder_dooya_test); MU_RUN_TEST(subghz_encoder_mastercode_test); + MU_RUN_TEST(subghz_encoder_dickert_test); MU_RUN_TEST(subghz_random_test); subghz_test_deinit(); diff --git a/applications/examples/example_ble_beacon/example_ble_beacon_10px.png b/applications/examples/example_ble_beacon/example_ble_beacon_10px.png index 7060e893d..c6aff4189 100644 Binary files a/applications/examples/example_ble_beacon/example_ble_beacon_10px.png and b/applications/examples/example_ble_beacon/example_ble_beacon_10px.png differ diff --git a/applications/examples/example_ble_beacon/images/lighthouse_35x44.png b/applications/examples/example_ble_beacon/images/lighthouse_35x44.png index 4cf4d19c5..8ca6d664d 100644 Binary files a/applications/examples/example_ble_beacon/images/lighthouse_35x44.png and b/applications/examples/example_ble_beacon/images/lighthouse_35x44.png differ diff --git a/applications/examples/example_images/images/dolphin_71x25.png b/applications/examples/example_images/images/dolphin_71x25.png index 6b3f8aa59..26c21e235 100644 Binary files a/applications/examples/example_images/images/dolphin_71x25.png and b/applications/examples/example_images/images/dolphin_71x25.png differ diff --git a/applications/examples/example_number_input/ReadMe.md b/applications/examples/example_number_input/ReadMe.md new file mode 100644 index 000000000..9d5a0a9e5 --- /dev/null +++ b/applications/examples/example_number_input/ReadMe.md @@ -0,0 +1,7 @@ +# Number Input + +Simple keyboard that limits user inputs to a full number (integer). Useful to enforce correct entries without the need of intense validations after a user input. + +Definition of min/max values is required. Numbers are of type int32_t. If negative numbers are allowed withing min - max, an additional button is displayed to switch the sign between + and -. + +It is also possible to define a header text, shown in this example app with the 3 different input options. \ No newline at end of file diff --git a/applications/examples/example_number_input/application.fam b/applications/examples/example_number_input/application.fam new file mode 100644 index 000000000..58cff4496 --- /dev/null +++ b/applications/examples/example_number_input/application.fam @@ -0,0 +1,10 @@ +App( + appid="example_number_input", + name="Example: Number Input", + apptype=FlipperAppType.EXTERNAL, + entry_point="example_number_input", + requires=["gui"], + stack_size=1 * 1024, + fap_icon="example_number_input_10px.png", + fap_category="Examples", +) diff --git a/applications/examples/example_number_input/example_number_input.c b/applications/examples/example_number_input/example_number_input.c new file mode 100644 index 000000000..19d787ef5 --- /dev/null +++ b/applications/examples/example_number_input/example_number_input.c @@ -0,0 +1,79 @@ +#include "example_number_input.h" + +bool example_number_input_custom_event_callback(void* context, uint32_t event) { + furi_assert(context); + ExampleNumberInput* app = context; + return scene_manager_handle_custom_event(app->scene_manager, event); +} + +static bool example_number_input_back_event_callback(void* context) { + furi_assert(context); + ExampleNumberInput* app = context; + return scene_manager_handle_back_event(app->scene_manager); +} + +static ExampleNumberInput* example_number_input_alloc() { + ExampleNumberInput* app = malloc(sizeof(ExampleNumberInput)); + app->gui = furi_record_open(RECORD_GUI); + + app->view_dispatcher = view_dispatcher_alloc(); + + app->scene_manager = scene_manager_alloc(&example_number_input_scene_handlers, app); + view_dispatcher_set_event_callback_context(app->view_dispatcher, app); + view_dispatcher_set_custom_event_callback( + app->view_dispatcher, example_number_input_custom_event_callback); + view_dispatcher_set_navigation_event_callback( + app->view_dispatcher, example_number_input_back_event_callback); + + app->number_input = number_input_alloc(); + view_dispatcher_add_view( + app->view_dispatcher, + ExampleNumberInputViewIdNumberInput, + number_input_get_view(app->number_input)); + + app->dialog_ex = dialog_ex_alloc(); + view_dispatcher_add_view( + app->view_dispatcher, + ExampleNumberInputViewIdShowNumber, + dialog_ex_get_view(app->dialog_ex)); + + app->current_number = 5; + app->min_value = INT32_MIN; + app->max_value = INT32_MAX; + + return app; +} + +static void example_number_input_free(ExampleNumberInput* app) { + furi_assert(app); + + view_dispatcher_remove_view(app->view_dispatcher, ExampleNumberInputViewIdShowNumber); + dialog_ex_free(app->dialog_ex); + + view_dispatcher_remove_view(app->view_dispatcher, ExampleNumberInputViewIdNumberInput); + number_input_free(app->number_input); + + scene_manager_free(app->scene_manager); + view_dispatcher_free(app->view_dispatcher); + + furi_record_close(RECORD_GUI); + app->gui = NULL; + + //Remove whatever is left + free(app); +} + +int32_t example_number_input(void* p) { + UNUSED(p); + ExampleNumberInput* app = example_number_input_alloc(); + + view_dispatcher_attach_to_gui(app->view_dispatcher, app->gui, ViewDispatcherTypeFullscreen); + + scene_manager_next_scene(app->scene_manager, ExampleNumberInputSceneShowNumber); + + view_dispatcher_run(app->view_dispatcher); + + example_number_input_free(app); + + return 0; +} diff --git a/applications/examples/example_number_input/example_number_input.h b/applications/examples/example_number_input/example_number_input.h new file mode 100644 index 000000000..8d944e6fd --- /dev/null +++ b/applications/examples/example_number_input/example_number_input.h @@ -0,0 +1,35 @@ +#pragma once + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "scenes/example_number_input_scene.h" + +typedef struct ExampleNumberInputShowNumber ExampleNumberInputShowNumber; + +typedef enum { + ExampleNumberInputViewIdShowNumber, + ExampleNumberInputViewIdNumberInput, +} ExampleNumberInputViewId; + +typedef struct { + Gui* gui; + SceneManager* scene_manager; + ViewDispatcher* view_dispatcher; + + NumberInput* number_input; + DialogEx* dialog_ex; + + int32_t current_number; + int32_t min_value; + int32_t max_value; +} ExampleNumberInput; diff --git a/applications/examples/example_number_input/example_number_input_10px.png b/applications/examples/example_number_input/example_number_input_10px.png new file mode 100644 index 000000000..bdb494fcd Binary files /dev/null and b/applications/examples/example_number_input/example_number_input_10px.png differ diff --git a/applications/examples/example_number_input/scenes/example_number_input_scene.c b/applications/examples/example_number_input/scenes/example_number_input_scene.c new file mode 100644 index 000000000..caf77fa8c --- /dev/null +++ b/applications/examples/example_number_input/scenes/example_number_input_scene.c @@ -0,0 +1,30 @@ +#include "example_number_input_scene.h" + +// Generate scene on_enter handlers array +#define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_enter, +void (*const example_number_input_on_enter_handlers[])(void*) = { +#include "example_number_input_scene_config.h" +}; +#undef ADD_SCENE + +// Generate scene on_event handlers array +#define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_event, +bool (*const example_number_input_on_event_handlers[])(void* context, SceneManagerEvent event) = { +#include "example_number_input_scene_config.h" +}; +#undef ADD_SCENE + +// Generate scene on_exit handlers array +#define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_exit, +void (*const example_number_input_on_exit_handlers[])(void* context) = { +#include "example_number_input_scene_config.h" +}; +#undef ADD_SCENE + +// Initialize scene handlers configuration structure +const SceneManagerHandlers example_number_input_scene_handlers = { + .on_enter_handlers = example_number_input_on_enter_handlers, + .on_event_handlers = example_number_input_on_event_handlers, + .on_exit_handlers = example_number_input_on_exit_handlers, + .scene_num = ExampleNumberInputSceneNum, +}; diff --git a/applications/examples/example_number_input/scenes/example_number_input_scene.h b/applications/examples/example_number_input/scenes/example_number_input_scene.h new file mode 100644 index 000000000..49fcd256f --- /dev/null +++ b/applications/examples/example_number_input/scenes/example_number_input_scene.h @@ -0,0 +1,29 @@ +#pragma once + +#include + +// Generate scene id and total number +#define ADD_SCENE(prefix, name, id) ExampleNumberInputScene##id, +typedef enum { +#include "example_number_input_scene_config.h" + ExampleNumberInputSceneNum, +} ExampleNumberInputScene; +#undef ADD_SCENE + +extern const SceneManagerHandlers example_number_input_scene_handlers; + +// Generate scene on_enter handlers declaration +#define ADD_SCENE(prefix, name, id) void prefix##_scene_##name##_on_enter(void*); +#include "example_number_input_scene_config.h" +#undef ADD_SCENE + +// Generate scene on_event handlers declaration +#define ADD_SCENE(prefix, name, id) \ + bool prefix##_scene_##name##_on_event(void* context, SceneManagerEvent event); +#include "example_number_input_scene_config.h" +#undef ADD_SCENE + +// Generate scene on_exit handlers declaration +#define ADD_SCENE(prefix, name, id) void prefix##_scene_##name##_on_exit(void* context); +#include "example_number_input_scene_config.h" +#undef ADD_SCENE diff --git a/applications/examples/example_number_input/scenes/example_number_input_scene_config.h b/applications/examples/example_number_input/scenes/example_number_input_scene_config.h new file mode 100644 index 000000000..71acbda52 --- /dev/null +++ b/applications/examples/example_number_input/scenes/example_number_input_scene_config.h @@ -0,0 +1,4 @@ +ADD_SCENE(example_number_input, input_number, InputNumber) +ADD_SCENE(example_number_input, show_number, ShowNumber) +ADD_SCENE(example_number_input, input_max, InputMax) +ADD_SCENE(example_number_input, input_min, InputMin) diff --git a/applications/examples/example_number_input/scenes/example_number_input_scene_input_max.c b/applications/examples/example_number_input/scenes/example_number_input_scene_input_max.c new file mode 100644 index 000000000..7478f58a7 --- /dev/null +++ b/applications/examples/example_number_input/scenes/example_number_input_scene_input_max.c @@ -0,0 +1,39 @@ +#include "../example_number_input.h" + +void example_number_input_scene_input_max_callback(void* context, int32_t number) { + ExampleNumberInput* app = context; + app->max_value = number; + view_dispatcher_send_custom_event(app->view_dispatcher, 0); +} + +void example_number_input_scene_input_max_on_enter(void* context) { + furi_assert(context); + ExampleNumberInput* app = context; + NumberInput* number_input = app->number_input; + + number_input_set_header_text(number_input, "Enter the maximum value"); + number_input_set_result_callback( + number_input, + example_number_input_scene_input_max_callback, + context, + app->max_value, + app->min_value, + INT32_MAX); + + view_dispatcher_switch_to_view(app->view_dispatcher, ExampleNumberInputViewIdNumberInput); +} + +bool example_number_input_scene_input_max_on_event(void* context, SceneManagerEvent event) { + ExampleNumberInput* app = context; + bool consumed = false; + + if(event.type == SceneManagerEventTypeCustom) { + scene_manager_previous_scene(app->scene_manager); + return true; + } + return consumed; +} + +void example_number_input_scene_input_max_on_exit(void* context) { + UNUSED(context); +} diff --git a/applications/examples/example_number_input/scenes/example_number_input_scene_input_min.c b/applications/examples/example_number_input/scenes/example_number_input_scene_input_min.c new file mode 100644 index 000000000..ad7656232 --- /dev/null +++ b/applications/examples/example_number_input/scenes/example_number_input_scene_input_min.c @@ -0,0 +1,39 @@ +#include "../example_number_input.h" + +void example_number_input_scene_input_min_callback(void* context, int32_t number) { + ExampleNumberInput* app = context; + app->min_value = number; + view_dispatcher_send_custom_event(app->view_dispatcher, 0); +} + +void example_number_input_scene_input_min_on_enter(void* context) { + furi_assert(context); + ExampleNumberInput* app = context; + NumberInput* number_input = app->number_input; + + number_input_set_header_text(number_input, "Enter the minimum value"); + number_input_set_result_callback( + number_input, + example_number_input_scene_input_min_callback, + context, + app->min_value, + INT32_MIN, + app->max_value); + + view_dispatcher_switch_to_view(app->view_dispatcher, ExampleNumberInputViewIdNumberInput); +} + +bool example_number_input_scene_input_min_on_event(void* context, SceneManagerEvent event) { + ExampleNumberInput* app = context; + bool consumed = false; + + if(event.type == SceneManagerEventTypeCustom) { + scene_manager_previous_scene(app->scene_manager); + return true; + } + return consumed; +} + +void example_number_input_scene_input_min_on_exit(void* context) { + UNUSED(context); +} diff --git a/applications/examples/example_number_input/scenes/example_number_input_scene_input_number.c b/applications/examples/example_number_input/scenes/example_number_input_scene_input_number.c new file mode 100644 index 000000000..d9b1fd52f --- /dev/null +++ b/applications/examples/example_number_input/scenes/example_number_input_scene_input_number.c @@ -0,0 +1,42 @@ +#include "../example_number_input.h" + +void example_number_input_scene_input_number_callback(void* context, int32_t number) { + ExampleNumberInput* app = context; + app->current_number = number; + view_dispatcher_send_custom_event(app->view_dispatcher, 0); +} + +void example_number_input_scene_input_number_on_enter(void* context) { + furi_assert(context); + ExampleNumberInput* app = context; + NumberInput* number_input = app->number_input; + + char str[50]; + snprintf(str, sizeof(str), "Set Number (%ld - %ld)", app->min_value, app->max_value); + + number_input_set_header_text(number_input, str); + number_input_set_result_callback( + number_input, + example_number_input_scene_input_number_callback, + context, + app->current_number, + app->min_value, + app->max_value); + + view_dispatcher_switch_to_view(app->view_dispatcher, ExampleNumberInputViewIdNumberInput); +} + +bool example_number_input_scene_input_number_on_event(void* context, SceneManagerEvent event) { + ExampleNumberInput* app = context; + bool consumed = false; + + if(event.type == SceneManagerEventTypeCustom) { //Back button pressed + scene_manager_previous_scene(app->scene_manager); + return true; + } + return consumed; +} + +void example_number_input_scene_input_number_on_exit(void* context) { + UNUSED(context); +} diff --git a/applications/examples/example_number_input/scenes/example_number_input_scene_show_number.c b/applications/examples/example_number_input/scenes/example_number_input_scene_show_number.c new file mode 100644 index 000000000..2afdaf5c1 --- /dev/null +++ b/applications/examples/example_number_input/scenes/example_number_input_scene_show_number.c @@ -0,0 +1,66 @@ +#include "../example_number_input.h" + +static void + example_number_input_scene_confirm_dialog_callback(DialogExResult result, void* context) { + ExampleNumberInput* app = context; + + view_dispatcher_send_custom_event(app->view_dispatcher, result); +} + +static void example_number_input_scene_update_view(void* context) { + ExampleNumberInput* app = context; + DialogEx* dialog_ex = app->dialog_ex; + + dialog_ex_set_header(dialog_ex, "The number is", 64, 0, AlignCenter, AlignTop); + + static char buffer[12]; //needs static for extended lifetime + + snprintf(buffer, sizeof(buffer), "%ld", app->current_number); + dialog_ex_set_text(dialog_ex, buffer, 64, 29, AlignCenter, AlignCenter); + + dialog_ex_set_left_button_text(dialog_ex, "Min"); + dialog_ex_set_right_button_text(dialog_ex, "Max"); + dialog_ex_set_center_button_text(dialog_ex, "Change"); + + dialog_ex_set_result_callback(dialog_ex, example_number_input_scene_confirm_dialog_callback); + dialog_ex_set_context(dialog_ex, app); +} + +void example_number_input_scene_show_number_on_enter(void* context) { + furi_assert(context); + ExampleNumberInput* app = context; + + example_number_input_scene_update_view(app); + + view_dispatcher_switch_to_view(app->view_dispatcher, ExampleNumberInputViewIdShowNumber); +} + +bool example_number_input_scene_show_number_on_event(void* context, SceneManagerEvent event) { + ExampleNumberInput* app = context; + bool consumed = false; + + if(event.type == SceneManagerEventTypeCustom) { + switch(event.event) { + case DialogExResultCenter: + scene_manager_next_scene(app->scene_manager, ExampleNumberInputSceneInputNumber); + consumed = true; + break; + case DialogExResultLeft: + scene_manager_next_scene(app->scene_manager, ExampleNumberInputSceneInputMin); + consumed = true; + break; + case DialogExResultRight: + scene_manager_next_scene(app->scene_manager, ExampleNumberInputSceneInputMax); + consumed = true; + break; + default: + break; + } + } + + return consumed; +} + +void example_number_input_scene_show_number_on_exit(void* context) { + UNUSED(context); +} diff --git a/applications/examples/example_thermo/example_thermo_10px.png b/applications/examples/example_thermo/example_thermo_10px.png index 3d527f306..bc42d190c 100644 Binary files a/applications/examples/example_thermo/example_thermo_10px.png and b/applications/examples/example_thermo/example_thermo_10px.png differ diff --git a/applications/main/archive/helpers/archive_files.c b/applications/main/archive/helpers/archive_files.c index 3684fe643..868fa8a11 100644 --- a/applications/main/archive/helpers/archive_files.c +++ b/applications/main/archive/helpers/archive_files.c @@ -15,7 +15,7 @@ void archive_set_file_type(ArchiveFile_t* file, const char* path, bool is_folder } else { for(size_t i = 0; i < COUNT_OF(known_ext); i++) { if((known_ext[i][0] == '?') || (known_ext[i][0] == '*')) continue; - if(furi_string_end_with(file->path, known_ext[i])) { + if(furi_string_end_withi(file->path, known_ext[i])) { if((i == ArchiveFileTypeBadUsb) || (i == ArchiveFileTypeSubGhzRemote)) { if(furi_string_search( file->path, archive_get_default_path(ArchiveTabBadUsb)) == 0) { diff --git a/applications/main/bad_usb/icon.png b/applications/main/bad_usb/icon.png index 037474aa3..2b5a3bf97 100644 Binary files a/applications/main/bad_usb/icon.png and b/applications/main/bad_usb/icon.png differ diff --git a/applications/main/gpio/icon.png b/applications/main/gpio/icon.png index 4a6eccf05..7b54bb5cb 100644 Binary files a/applications/main/gpio/icon.png and b/applications/main/gpio/icon.png differ diff --git a/applications/main/ibutton/icon.png b/applications/main/ibutton/icon.png index 2fdaf123a..f73af065f 100644 Binary files a/applications/main/ibutton/icon.png and b/applications/main/ibutton/icon.png differ diff --git a/applications/main/infrared/icon.png b/applications/main/infrared/icon.png index 22c986180..36c214f3b 100644 Binary files a/applications/main/infrared/icon.png and b/applications/main/infrared/icon.png differ diff --git a/applications/main/lfrfid/icon.png b/applications/main/lfrfid/icon.png index ce01284a2..fd3947ff3 100644 Binary files a/applications/main/lfrfid/icon.png and b/applications/main/lfrfid/icon.png differ diff --git a/applications/main/nfc/icon.png b/applications/main/nfc/icon.png index 6bc027111..e998d291e 100644 Binary files a/applications/main/nfc/icon.png and b/applications/main/nfc/icon.png differ diff --git a/applications/main/subghz/icon.png b/applications/main/subghz/icon.png index 5a25fdf4e..70940ad77 100644 Binary files a/applications/main/subghz/icon.png and b/applications/main/subghz/icon.png differ diff --git a/applications/main/u2f/icon.png b/applications/main/u2f/icon.png index fcd87a2ef..6f46b0e78 100644 Binary files a/applications/main/u2f/icon.png and b/applications/main/u2f/icon.png differ diff --git a/applications/services/gui/application.fam b/applications/services/gui/application.fam index b7dd18baa..b24f5bbb6 100644 --- a/applications/services/gui/application.fam +++ b/applications/services/gui/application.fam @@ -19,6 +19,7 @@ App( "view_holder.h", "modules/button_menu.h", "modules/byte_input.h", + "modules/number_input.h", "modules/popup.h", "modules/text_input.h", "modules/widget.h", diff --git a/applications/services/gui/modules/file_browser_worker.c b/applications/services/gui/modules/file_browser_worker.c index bcd43b45a..78a438ebb 100644 --- a/applications/services/gui/modules/file_browser_worker.c +++ b/applications/services/gui/modules/file_browser_worker.c @@ -134,7 +134,7 @@ static bool browser_filter_by_name(BrowserWorker* browser, FuriString* name, boo if((furi_string_empty(ext)) || (furi_string_cmp_str(ext, "*") == 0)) { return true; } - if(furi_string_end_with(name, ext)) { + if(furi_string_end_withi(name, ext)) { return true; } } diff --git a/applications/services/gui/modules/number_input.c b/applications/services/gui/modules/number_input.c new file mode 100644 index 000000000..777e55747 --- /dev/null +++ b/applications/services/gui/modules/number_input.c @@ -0,0 +1,443 @@ +#include "number_input.h" + +#include +#include +#include + +struct NumberInput { + View* view; +}; + +typedef struct { + const char text; + const size_t x; + const size_t y; +} NumberInputKey; + +typedef struct { + FuriString* header; + FuriString* text_buffer; + + int32_t current_number; + int32_t max_value; + int32_t min_value; + + NumberInputCallback callback; + void* callback_context; + + size_t selected_row; + size_t selected_column; +} NumberInputModel; + +static const size_t keyboard_origin_x = 7; +static const size_t keyboard_origin_y = 31; +static const size_t keyboard_row_count = 2; +static const char enter_symbol = '\r'; +static const char backspace_symbol = '\b'; +static const char sign_symbol = '-'; + +static const NumberInputKey keyboard_keys_row_1[] = { + {'0', 0, 12}, + {'1', 11, 12}, + {'2', 22, 12}, + {'3', 33, 12}, + {'4', 44, 12}, + {backspace_symbol, 103, 4}, +}; + +static const NumberInputKey keyboard_keys_row_2[] = { + {'5', 0, 26}, + {'6', 11, 26}, + {'7', 22, 26}, + {'8', 33, 26}, + {'9', 44, 26}, + {sign_symbol, 55, 17}, + {enter_symbol, 95, 17}, +}; + +static size_t number_input_get_row_size(size_t row_index) { + size_t row_size = 0; + + switch(row_index + 1) { + case 1: + row_size = COUNT_OF(keyboard_keys_row_1); + break; + case 2: + row_size = COUNT_OF(keyboard_keys_row_2); + break; + default: + furi_crash(); + } + + return row_size; +} + +static const NumberInputKey* number_input_get_row(size_t row_index) { + const NumberInputKey* row = NULL; + + switch(row_index + 1) { + case 1: + row = keyboard_keys_row_1; + break; + case 2: + row = keyboard_keys_row_2; + break; + default: + furi_crash(); + } + + return row; +} + +static void number_input_draw_input(Canvas* canvas, NumberInputModel* model) { + const size_t text_x = 8; + const size_t text_y = 25; + + elements_slightly_rounded_frame(canvas, 6, 14, 116, 15); + + canvas_draw_str(canvas, text_x, text_y, furi_string_get_cstr(model->text_buffer)); +} + +static bool number_input_use_sign(NumberInputModel* model) { + //only show sign button if allowed number range needs it + if(model->min_value < 0 && model->max_value >= 0) { + return true; + } + return false; +} + +static void number_input_backspace_cb(NumberInputModel* model) { + size_t text_length = furi_string_utf8_length(model->text_buffer); + if(text_length < 1 || (text_length < 2 && model->current_number <= 0)) { + return; + } + furi_string_set_strn( + model->text_buffer, furi_string_get_cstr(model->text_buffer), text_length - 1); + model->current_number = strtol(furi_string_get_cstr(model->text_buffer), NULL, 10); +} + +static void number_input_handle_up(NumberInputModel* model) { + if(model->selected_row > 0) { + model->selected_row--; + if(model->selected_column > number_input_get_row_size(model->selected_row) - 1) { + model->selected_column = number_input_get_row_size(model->selected_row) - 1; + } + } +} + +static void number_input_handle_down(NumberInputModel* model) { + if(model->selected_row < keyboard_row_count - 1) { + if(model->selected_column >= number_input_get_row_size(model->selected_row) - 1) { + model->selected_column = number_input_get_row_size(model->selected_row + 1) - 1; + } + model->selected_row += 1; + } + const NumberInputKey* keys = number_input_get_row(model->selected_row); + if(keys[model->selected_column].text == sign_symbol && !number_input_use_sign(model)) { + model->selected_column--; + } +} + +static void number_input_handle_left(NumberInputModel* model) { + if(model->selected_column > 0) { + model->selected_column--; + } else { + model->selected_column = number_input_get_row_size(model->selected_row) - 1; + } + const NumberInputKey* keys = number_input_get_row(model->selected_row); + if(keys[model->selected_column].text == sign_symbol && !number_input_use_sign(model)) { + model->selected_column--; + } +} + +static void number_input_handle_right(NumberInputModel* model) { + if(model->selected_column < number_input_get_row_size(model->selected_row) - 1) { + model->selected_column++; + } else { + model->selected_column = 0; + } + const NumberInputKey* keys = number_input_get_row(model->selected_row); + if(keys[model->selected_column].text == sign_symbol && !number_input_use_sign(model)) { + model->selected_column++; + } +} + +static bool is_number_too_large(NumberInputModel* model) { + int64_t value = strtoll(furi_string_get_cstr(model->text_buffer), NULL, 10); + if(value > (int64_t)model->max_value) { + return true; + } + return false; +} + +static bool is_number_too_small(NumberInputModel* model) { + int64_t value = strtoll(furi_string_get_cstr(model->text_buffer), NULL, 10); + if(value < (int64_t)model->min_value) { + return true; + } + return false; +} + +static void number_input_sign(NumberInputModel* model) { + int32_t number = strtol(furi_string_get_cstr(model->text_buffer), NULL, 10); + if(number == 0 && furi_string_cmp_str(model->text_buffer, "-") != 0) { + furi_string_set_str(model->text_buffer, "-"); + return; + } + number = number * -1; + furi_string_printf(model->text_buffer, "%ld", number); + if(is_number_too_large(model) || is_number_too_small(model)) { + furi_string_printf(model->text_buffer, "%ld", model->current_number); + return; + } + model->current_number = strtol(furi_string_get_cstr(model->text_buffer), NULL, 10); + if(model->current_number == 0) { + furi_string_set_str(model->text_buffer, ""); //show empty if 0, better for usability + } +} + +static void number_input_add_digit(NumberInputModel* model, char* newChar) { + furi_string_cat_str(model->text_buffer, newChar); + if((model->max_value >= 0 && is_number_too_large(model)) || + (model->min_value < 0 && is_number_too_small(model))) { + //you still need to be able to type invalid numbers in some cases to reach valid numbers on later keypress + furi_string_printf(model->text_buffer, "%ld", model->current_number); + return; + } + model->current_number = strtol(furi_string_get_cstr(model->text_buffer), NULL, 10); + if(model->current_number == 0) { + furi_string_reset(model->text_buffer); + } +} + +static void number_input_handle_ok(NumberInputModel* model) { + char selected = number_input_get_row(model->selected_row)[model->selected_column].text; + char temp_str[2] = {selected, '\0'}; + if(selected == enter_symbol) { + if(is_number_too_large(model) || is_number_too_small(model)) { + return; //Do nothing if number outside allowed range + } + model->current_number = strtol(furi_string_get_cstr(model->text_buffer), NULL, 10); + model->callback(model->callback_context, model->current_number); + } else if(selected == backspace_symbol) { + number_input_backspace_cb(model); + } else if(selected == sign_symbol) { + number_input_sign(model); + } else { + number_input_add_digit(model, temp_str); + } +} + +static void number_input_view_draw_callback(Canvas* canvas, void* _model) { + NumberInputModel* model = _model; + + number_input_draw_input(canvas, model); + + if(!furi_string_empty(model->header)) { + canvas_set_font(canvas, FontSecondary); + canvas_draw_str(canvas, 2, 9, furi_string_get_cstr(model->header)); + } + canvas_set_font(canvas, FontKeyboard); + // Draw keyboard + for(size_t row = 0; row < keyboard_row_count; row++) { + const size_t column_count = number_input_get_row_size(row); + const NumberInputKey* keys = number_input_get_row(row); + + for(size_t column = 0; column < column_count; column++) { + if(keys[column].text == sign_symbol && !number_input_use_sign(model)) { + continue; + } + + if(keys[column].text == enter_symbol) { + if(is_number_too_small(model) || is_number_too_large(model)) { + //in some cases you need to be able to type a number smaller/larger than the limits (expl. min = 50, clear all and editor must allow to type 9 and later 0 for 90) + if(model->selected_row == row && model->selected_column == column) { + canvas_draw_icon( + canvas, + keyboard_origin_x + keys[column].x, + keyboard_origin_y + keys[column].y, + &I_KeySaveBlockedSelected_24x11); + } else { + canvas_draw_icon( + canvas, + keyboard_origin_x + keys[column].x, + keyboard_origin_y + keys[column].y, + &I_KeySaveBlocked_24x11); + } + } else { + if(model->selected_row == row && model->selected_column == column) { + canvas_draw_icon( + canvas, + keyboard_origin_x + keys[column].x, + keyboard_origin_y + keys[column].y, + &I_KeySaveSelected_24x11); + } else { + canvas_draw_icon( + canvas, + keyboard_origin_x + keys[column].x, + keyboard_origin_y + keys[column].y, + &I_KeySave_24x11); + } + } + } else if(keys[column].text == backspace_symbol) { + if(model->selected_row == row && model->selected_column == column) { + canvas_draw_icon( + canvas, + keyboard_origin_x + keys[column].x, + keyboard_origin_y + keys[column].y, + &I_KeyBackspaceSelected_16x9); + } else { + canvas_draw_icon( + canvas, + keyboard_origin_x + keys[column].x, + keyboard_origin_y + keys[column].y, + &I_KeyBackspace_16x9); + } + } else if(keys[column].text == sign_symbol) { + if(model->selected_row == row && model->selected_column == column) { + canvas_draw_icon( + canvas, + keyboard_origin_x + keys[column].x, + keyboard_origin_y + keys[column].y, + &I_KeySignSelected_21x11); + } else { + canvas_draw_icon( + canvas, + keyboard_origin_x + keys[column].x, + keyboard_origin_y + keys[column].y, + &I_KeySign_21x11); + } + } else { + if(model->selected_row == row && model->selected_column == column) { + canvas_draw_box( + canvas, + keyboard_origin_x + keys[column].x - 3, + keyboard_origin_y + keys[column].y - 10, + 11, + 13); + canvas_set_color(canvas, ColorWhite); + } + + canvas_draw_glyph( + canvas, + keyboard_origin_x + keys[column].x, + keyboard_origin_y + keys[column].y, + keys[column].text); + canvas_set_color(canvas, ColorBlack); + } + } + } +} + +static bool number_input_view_input_callback(InputEvent* event, void* context) { + furi_assert(context); + NumberInput* number_input = context; + + bool consumed = false; + + // Fetch the model + NumberInputModel* model = view_get_model(number_input->view); + + if(event->type == InputTypeShort || event->type == InputTypeLong || + event->type == InputTypeRepeat) { + consumed = true; + switch(event->key) { + case InputKeyLeft: + number_input_handle_left(model); + break; + case InputKeyRight: + number_input_handle_right(model); + break; + case InputKeyUp: + number_input_handle_up(model); + break; + case InputKeyDown: + number_input_handle_down(model); + break; + case InputKeyOk: + number_input_handle_ok(model); + break; + default: + consumed = false; + break; + } + } + + // commit view + view_commit_model(number_input->view, consumed); + + return consumed; +} + +NumberInput* number_input_alloc(void) { + NumberInput* number_input = malloc(sizeof(NumberInput)); + number_input->view = view_alloc(); + view_set_context(number_input->view, number_input); + view_allocate_model(number_input->view, ViewModelTypeLocking, sizeof(NumberInputModel)); + view_set_draw_callback(number_input->view, number_input_view_draw_callback); + view_set_input_callback(number_input->view, number_input_view_input_callback); + + with_view_model( + number_input->view, + NumberInputModel * model, + { + model->header = furi_string_alloc(); + model->text_buffer = furi_string_alloc(); + }, + true); + + return number_input; +} + +void number_input_free(NumberInput* number_input) { + furi_check(number_input); + with_view_model( + number_input->view, + NumberInputModel * model, + { + furi_string_free(model->header); + furi_string_free(model->text_buffer); + }, + true); + view_free(number_input->view); + free(number_input); +} + +View* number_input_get_view(NumberInput* number_input) { + furi_check(number_input); + return number_input->view; +} + +void number_input_set_result_callback( + NumberInput* number_input, + NumberInputCallback callback, + void* callback_context, + int32_t current_number, + int32_t min_value, + int32_t max_value) { + furi_check(number_input); + + current_number = CLAMP(current_number, max_value, min_value); + + with_view_model( + number_input->view, + NumberInputModel * model, + { + model->callback = callback; + model->callback_context = callback_context; + model->current_number = current_number; + furi_string_printf(model->text_buffer, "%ld", current_number); + model->min_value = min_value; + model->max_value = max_value; + }, + true); +} + +void number_input_set_header_text(NumberInput* number_input, const char* text) { + furi_check(number_input); + with_view_model( + number_input->view, + NumberInputModel * model, + { furi_string_set(model->header, text); }, + true); +} diff --git a/applications/services/gui/modules/number_input.h b/applications/services/gui/modules/number_input.h new file mode 100644 index 000000000..80e631e9b --- /dev/null +++ b/applications/services/gui/modules/number_input.h @@ -0,0 +1,69 @@ +/** + * @file number_input.h + * GUI: Integer string keyboard view module API + */ + +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** Number input anonymous structure */ +typedef struct NumberInput NumberInput; + +/** Callback to be called on save button press */ +typedef void (*NumberInputCallback)(void* context, int32_t number); + +/** Allocate and initialize Number input. + * + * This Number input is used to enter Numbers (Integers). + * + * @return NumberInput instance pointer + */ +NumberInput* number_input_alloc(void); + +/** Deinitialize and free byte input + * + * @param number_input Number input instance + */ +void number_input_free(NumberInput* number_input); + +/** Get byte input view + * + * @param number_input byte input instance + * + * @return View instance that can be used for embedding + */ +View* number_input_get_view(NumberInput* number_input); + +/** Set byte input result callback + * + * @param number_input byte input instance + * @param input_callback input callback fn + * @param callback_context callback context + * @param[in] current_number The current number + * @param min_value Min number value + * @param max_value Max number value + */ + +void number_input_set_result_callback( + NumberInput* number_input, + NumberInputCallback input_callback, + void* callback_context, + int32_t current_number, + int32_t min_value, + int32_t max_value); + +/** Set byte input header text + * + * @param number_input byte input instance + * @param text text to be shown + */ +void number_input_set_header_text(NumberInput* number_input, const char* text); + +#ifdef __cplusplus +} +#endif diff --git a/applications/services/region/application.fam b/applications/services/region/application.fam new file mode 100644 index 000000000..a4cdc94ea --- /dev/null +++ b/applications/services/region/application.fam @@ -0,0 +1,10 @@ +App( + appid="region", + name="RegionSrv", + apptype=FlipperAppType.STARTUP, + targets=["f7"], + entry_point="region_on_system_start", + cdefines=["SRV_REGION"], + requires=["storage"], + order=170, +) diff --git a/applications/services/region/region.c b/applications/services/region/region.c new file mode 100644 index 000000000..dffcc6b2d --- /dev/null +++ b/applications/services/region/region.c @@ -0,0 +1,147 @@ +#include + +#include +#include + +#include +#include + +#define TAG "RegionSrv" + +#define SUBGHZ_REGION_FILENAME INT_PATH(".region_data") + +static bool region_istream_read(pb_istream_t* istream, pb_byte_t* buf, size_t count) { + File* file = istream->state; + size_t ret = storage_file_read(file, buf, count); + return count == ret; +} + +static bool region_istream_decode_band(pb_istream_t* stream, const pb_field_t* field, void** arg) { + UNUSED(field); + + FuriHalRegion* region = *arg; + + PB_Region_Band band = {0}; + if(!pb_decode(stream, PB_Region_Band_fields, &band)) { + FURI_LOG_E(TAG, "PB Region band decode error: %s", PB_GET_ERROR(stream)); + return false; + } + + region->bands_count += 1; + region = realloc( //-V701 + region, + sizeof(FuriHalRegion) + sizeof(FuriHalRegionBand) * region->bands_count); + size_t pos = region->bands_count - 1; + region->bands[pos].start = band.start; + region->bands[pos].end = band.end; + region->bands[pos].power_limit = band.power_limit; + region->bands[pos].duty_cycle = band.duty_cycle; + *arg = region; + + FURI_LOG_I( + TAG, + "Add allowed band: start %luHz, stop %luHz, power_limit %ddBm, duty_cycle %u%%", + band.start, + band.end, + band.power_limit, + band.duty_cycle); + return true; +} + +static int32_t region_load_file(void* context) { + UNUSED(context); + + Storage* storage = furi_record_open(RECORD_STORAGE); + File* file = storage_file_alloc(storage); + + PB_Region pb_region = {0}; + pb_region.bands.funcs.decode = region_istream_decode_band; + + do { + FileInfo fileinfo = {0}; + + if(storage_common_stat(storage, SUBGHZ_REGION_FILENAME, &fileinfo) != FSE_OK || + fileinfo.size == 0) { + FURI_LOG_W(TAG, "Region file missing or empty"); + break; + + } else if(!storage_file_open(file, SUBGHZ_REGION_FILENAME, FSAM_READ, FSOM_OPEN_EXISTING)) { + FURI_LOG_E(TAG, "Failed to open region file"); + break; + } + + pb_istream_t istream = { + .callback = region_istream_read, + .state = file, + .errmsg = NULL, + .bytes_left = fileinfo.size, + }; + + pb_region.bands.arg = malloc(sizeof(FuriHalRegion)); + + if(!pb_decode(&istream, PB_Region_fields, &pb_region)) { + FURI_LOG_E(TAG, "Failed to decode region file"); + free(pb_region.bands.arg); + break; + } + + FuriHalRegion* region = pb_region.bands.arg; + + memcpy( + region->country_code, + pb_region.country_code->bytes, + MIN(pb_region.country_code->size, sizeof(region->country_code) - 1)); + + furi_hal_region_set(region); + + FURI_LOG_I(TAG, "Dynamic region set: %s", region->country_code); + } while(0); + + pb_release(PB_Region_fields, &pb_region); + storage_file_free(file); + furi_record_close(RECORD_STORAGE); + + return 0; +} + +static void region_loader_pending_callback(void* context, uint32_t arg) { + UNUSED(arg); + + FuriThread* loader = context; + furi_thread_join(loader); + furi_thread_free(loader); +} + +static void region_loader_state_callback(FuriThreadState state, void* context) { + UNUSED(context); + + if(state == FuriThreadStateStopped) { + furi_timer_pending_callback(region_loader_pending_callback, furi_thread_get_current(), 0); + } +} + +static void region_storage_callback(const void* message, void* context) { + UNUSED(context); + const StorageEvent* event = message; + + if(event->type == StorageEventTypeCardMount) { + FuriThread* loader = furi_thread_alloc_ex(NULL, 2048, region_load_file, NULL); + furi_thread_set_state_callback(loader, region_loader_state_callback); + furi_thread_start(loader); + } +} + +int32_t region_on_system_start(void* p) { + UNUSED(p); + + Storage* storage = furi_record_open(RECORD_STORAGE); + furi_pubsub_subscribe(storage_get_pubsub(storage), region_storage_callback, NULL); + + if(storage_sd_status(storage) != FSE_OK) { + FURI_LOG_D(TAG, "SD Card not ready, skipping dynamic region"); + return 0; + } + + region_load_file(NULL); + return 0; +} diff --git a/applications/services/storage/storage_internal_dirname_i.h b/applications/services/storage/storage_internal_dirname_i.h new file mode 100644 index 000000000..889bdc497 --- /dev/null +++ b/applications/services/storage/storage_internal_dirname_i.h @@ -0,0 +1,3 @@ +#pragma once + +#define STORAGE_INTERNAL_DIR_NAME ".int" diff --git a/applications/services/storage/storage_processing.c b/applications/services/storage/storage_processing.c index 564589930..8d86dd385 100644 --- a/applications/services/storage/storage_processing.c +++ b/applications/services/storage/storage_processing.c @@ -1,7 +1,9 @@ -#include "storage_processing.h" #include #include +#include "storage_processing.h" +#include "storage_internal_dirname_i.h" + #define TAG "Storage" #define STORAGE_PATH_PREFIX_LEN 4u @@ -555,9 +557,9 @@ void storage_process_alias( } else if(furi_string_start_with(path, STORAGE_INT_PATH_PREFIX)) { furi_string_replace_at( - path, 0, strlen(STORAGE_INT_PATH_PREFIX), STORAGE_EXT_PATH_PREFIX "/.int"); + path, 0, strlen(STORAGE_INT_PATH_PREFIX), EXT_PATH(STORAGE_INTERNAL_DIR_NAME)); - FuriString* int_on_ext_path = furi_string_alloc_set(STORAGE_EXT_PATH_PREFIX "/.int"); + FuriString* int_on_ext_path = furi_string_alloc_set(EXT_PATH(STORAGE_INTERNAL_DIR_NAME)); if(storage_process_common_stat(app, int_on_ext_path, NULL) != FSE_OK) { storage_process_common_mkdir(app, int_on_ext_path); } diff --git a/applications/services/storage/storages/storage_ext.c b/applications/services/storage/storages/storage_ext.c index 93e06f663..a945f1cd5 100644 --- a/applications/services/storage/storages/storage_ext.c +++ b/applications/services/storage/storages/storage_ext.c @@ -1,10 +1,13 @@ -#include "fatfs.h" -#include "../filesystem_api_internal.h" -#include "storage_ext.h" +#include #include -#include "sd_notify.h" #include +#include "sd_notify.h" +#include "storage_ext.h" + +#include "../filesystem_api_internal.h" +#include "../storage_internal_dirname_i.h" + typedef FIL SDFile; typedef DIR SDDir; typedef FILINFO SDFileInfo; @@ -93,6 +96,64 @@ static bool sd_mount_card_internal(StorageData* storage, bool notify) { return result; } +static bool sd_remove_recursive(const char* path) { + SDDir* current_dir = malloc(sizeof(DIR)); + SDFileInfo* file_info = malloc(sizeof(FILINFO)); + FuriString* current_path = furi_string_alloc_set(path); + + bool go_deeper = false; + SDError status; + + while(true) { + status = f_opendir(current_dir, furi_string_get_cstr(current_path)); + if(status != FR_OK) break; + + while(true) { + status = f_readdir(current_dir, file_info); + if(status != FR_OK || !strlen(file_info->fname)) break; + + if(file_info->fattrib & AM_DIR) { + furi_string_cat_printf(current_path, "/%s", file_info->fname); + go_deeper = true; + break; + + } else { + FuriString* file_path = furi_string_alloc_printf( + "%s/%s", furi_string_get_cstr(current_path), file_info->fname); + status = f_unlink(furi_string_get_cstr(file_path)); + furi_string_free(file_path); + + if(status != FR_OK) break; + } + } + + status = f_closedir(current_dir); + if(status != FR_OK) break; + + if(go_deeper) { + go_deeper = false; + continue; + } + + status = f_unlink(furi_string_get_cstr(current_path)); + if(status != FR_OK) break; + + if(!furi_string_equal(current_path, path)) { + size_t last_char_pos = furi_string_search_rchar(current_path, '/'); + furi_assert(last_char_pos != FURI_STRING_FAILURE); + furi_string_left(current_path, last_char_pos); + } else { + break; + } + } + + free(current_dir); + free(file_info); + furi_string_free(current_path); + + return status == FR_OK; +} + FS_Error sd_unmount_card(StorageData* storage) { SDData* sd_data = storage->data; SDError error; @@ -112,21 +173,32 @@ FS_Error sd_mount_card(StorageData* storage, bool notify) { if(storage->status != StorageStatusOK) { FURI_LOG_E(TAG, "sd init error: %s", storage_data_status_text(storage)); - if(notify) { - NotificationApp* notification = furi_record_open(RECORD_NOTIFICATION); - sd_notify_error(notification); - furi_record_close(RECORD_NOTIFICATION); - } error = FSE_INTERNAL; + } else { FURI_LOG_I(TAG, "card mounted"); - if(notify) { - NotificationApp* notification = furi_record_open(RECORD_NOTIFICATION); - sd_notify_success(notification); - furi_record_close(RECORD_NOTIFICATION); - } +#ifndef FURI_RAM_EXEC + if(furi_hal_rtc_is_flag_set(FuriHalRtcFlagStorageFormatInternal)) { + FURI_LOG_I(TAG, "deleting internal storage directory"); + error = sd_remove_recursive(STORAGE_INTERNAL_DIR_NAME) ? FSE_OK : FSE_INTERNAL; + } else { + error = FSE_OK; + } +#else + UNUSED(sd_remove_recursive); error = FSE_OK; +#endif + } + + if(notify) { + NotificationApp* notification = furi_record_open(RECORD_NOTIFICATION); + if(error != FSE_OK) { + sd_notify_error(notification); + } else { + sd_notify_success(notification); + } + furi_record_close(RECORD_NOTIFICATION); } return error; @@ -654,4 +726,8 @@ void storage_ext_init(StorageData* storage) { // do not notify on first launch, notifications app is waiting for our thread to read settings storage_ext_tick_internal(storage, false); +#ifndef FURI_RAM_EXEC + // always reset the flag to prevent accidental wipe on SD card insertion + furi_hal_rtc_reset_flag(FuriHalRtcFlagStorageFormatInternal); +#endif } diff --git a/applications/settings/desktop_settings/desktop_settings_app.c b/applications/settings/desktop_settings/desktop_settings_app.c index bddbbd0f6..30d80514a 100644 --- a/applications/settings/desktop_settings/desktop_settings_app.c +++ b/applications/settings/desktop_settings/desktop_settings_app.c @@ -8,6 +8,9 @@ #include #include +#include +#include + #include "desktop_settings_app.h" #include "scenes/desktop_settings_scene.h" diff --git a/applications/system/hid_app/assets/Alt_17x10.png b/applications/system/hid_app/assets/Alt_17x10.png index 78529ca07..54c4557ba 100644 Binary files a/applications/system/hid_app/assets/Alt_17x10.png and b/applications/system/hid_app/assets/Alt_17x10.png differ diff --git a/applications/system/hid_app/assets/Alt_active_17x9.png b/applications/system/hid_app/assets/Alt_active_17x9.png old mode 100755 new mode 100644 index 46a21a2e8..bd1adf606 Binary files a/applications/system/hid_app/assets/Alt_active_17x9.png and b/applications/system/hid_app/assets/Alt_active_17x9.png differ diff --git a/applications/system/hid_app/assets/Arr_dwn_7x9.png b/applications/system/hid_app/assets/Arr_dwn_7x9.png index d4034efc4..dc97d3abc 100644 Binary files a/applications/system/hid_app/assets/Arr_dwn_7x9.png and b/applications/system/hid_app/assets/Arr_dwn_7x9.png differ diff --git a/applications/system/hid_app/assets/Arr_up_7x9.png b/applications/system/hid_app/assets/Arr_up_7x9.png index 28b4236a2..4e199c7d0 100644 Binary files a/applications/system/hid_app/assets/Arr_up_7x9.png and b/applications/system/hid_app/assets/Arr_up_7x9.png differ diff --git a/applications/system/hid_app/assets/Ble_connected_15x15.png b/applications/system/hid_app/assets/Ble_connected_15x15.png index 64dab9b53..1301399da 100644 Binary files a/applications/system/hid_app/assets/Ble_connected_15x15.png and b/applications/system/hid_app/assets/Ble_connected_15x15.png differ diff --git a/applications/system/hid_app/assets/Ble_disconnected_15x15.png b/applications/system/hid_app/assets/Ble_disconnected_15x15.png index bd54646d8..f926ce212 100644 Binary files a/applications/system/hid_app/assets/Ble_disconnected_15x15.png and b/applications/system/hid_app/assets/Ble_disconnected_15x15.png differ diff --git a/applications/system/hid_app/assets/ButtonDown_7x4.png b/applications/system/hid_app/assets/ButtonDown_7x4.png index 2954bb6a6..0cda838e0 100644 Binary files a/applications/system/hid_app/assets/ButtonDown_7x4.png and b/applications/system/hid_app/assets/ButtonDown_7x4.png differ diff --git a/applications/system/hid_app/assets/ButtonF10_5x8.png b/applications/system/hid_app/assets/ButtonF10_5x8.png index d1a7a04f0..a817cce36 100644 Binary files a/applications/system/hid_app/assets/ButtonF10_5x8.png and b/applications/system/hid_app/assets/ButtonF10_5x8.png differ diff --git a/applications/system/hid_app/assets/ButtonF11_5x8.png b/applications/system/hid_app/assets/ButtonF11_5x8.png index 7e177358e..9ebe40150 100644 Binary files a/applications/system/hid_app/assets/ButtonF11_5x8.png and b/applications/system/hid_app/assets/ButtonF11_5x8.png differ diff --git a/applications/system/hid_app/assets/ButtonF12_5x8.png b/applications/system/hid_app/assets/ButtonF12_5x8.png index 50d2a7dc6..a50b16ca3 100644 Binary files a/applications/system/hid_app/assets/ButtonF12_5x8.png and b/applications/system/hid_app/assets/ButtonF12_5x8.png differ diff --git a/applications/system/hid_app/assets/ButtonF1_5x8.png b/applications/system/hid_app/assets/ButtonF1_5x8.png index 7394d2710..53a30974b 100644 Binary files a/applications/system/hid_app/assets/ButtonF1_5x8.png and b/applications/system/hid_app/assets/ButtonF1_5x8.png differ diff --git a/applications/system/hid_app/assets/ButtonF2_5x8.png b/applications/system/hid_app/assets/ButtonF2_5x8.png index 9d922a385..df28654a5 100644 Binary files a/applications/system/hid_app/assets/ButtonF2_5x8.png and b/applications/system/hid_app/assets/ButtonF2_5x8.png differ diff --git a/applications/system/hid_app/assets/ButtonF3_5x8.png b/applications/system/hid_app/assets/ButtonF3_5x8.png index 95c2dd4f4..a36cd56b9 100644 Binary files a/applications/system/hid_app/assets/ButtonF3_5x8.png and b/applications/system/hid_app/assets/ButtonF3_5x8.png differ diff --git a/applications/system/hid_app/assets/ButtonF4_5x8.png b/applications/system/hid_app/assets/ButtonF4_5x8.png index 602466f4b..535195859 100644 Binary files a/applications/system/hid_app/assets/ButtonF4_5x8.png and b/applications/system/hid_app/assets/ButtonF4_5x8.png differ diff --git a/applications/system/hid_app/assets/ButtonF5_5x8.png b/applications/system/hid_app/assets/ButtonF5_5x8.png index d73b54052..918017f5a 100644 Binary files a/applications/system/hid_app/assets/ButtonF5_5x8.png and b/applications/system/hid_app/assets/ButtonF5_5x8.png differ diff --git a/applications/system/hid_app/assets/ButtonF6_5x8.png b/applications/system/hid_app/assets/ButtonF6_5x8.png index c50748257..1009799a5 100644 Binary files a/applications/system/hid_app/assets/ButtonF6_5x8.png and b/applications/system/hid_app/assets/ButtonF6_5x8.png differ diff --git a/applications/system/hid_app/assets/ButtonF7_5x8.png b/applications/system/hid_app/assets/ButtonF7_5x8.png index 396c98f51..a6c44ddd8 100644 Binary files a/applications/system/hid_app/assets/ButtonF7_5x8.png and b/applications/system/hid_app/assets/ButtonF7_5x8.png differ diff --git a/applications/system/hid_app/assets/ButtonF8_5x8.png b/applications/system/hid_app/assets/ButtonF8_5x8.png index 6304d7fb8..a789a0f36 100644 Binary files a/applications/system/hid_app/assets/ButtonF8_5x8.png and b/applications/system/hid_app/assets/ButtonF8_5x8.png differ diff --git a/applications/system/hid_app/assets/ButtonF9_5x8.png b/applications/system/hid_app/assets/ButtonF9_5x8.png index 148e69580..222b2e151 100644 Binary files a/applications/system/hid_app/assets/ButtonF9_5x8.png and b/applications/system/hid_app/assets/ButtonF9_5x8.png differ diff --git a/applications/system/hid_app/assets/ButtonLeft_4x7.png b/applications/system/hid_app/assets/ButtonLeft_4x7.png index 0b4655d43..7c43f3b04 100644 Binary files a/applications/system/hid_app/assets/ButtonLeft_4x7.png and b/applications/system/hid_app/assets/ButtonLeft_4x7.png differ diff --git a/applications/system/hid_app/assets/ButtonRight_4x7.png b/applications/system/hid_app/assets/ButtonRight_4x7.png index 8e1c74c1c..31de21c0e 100644 Binary files a/applications/system/hid_app/assets/ButtonRight_4x7.png and b/applications/system/hid_app/assets/ButtonRight_4x7.png differ diff --git a/applications/system/hid_app/assets/ButtonUp_7x4.png b/applications/system/hid_app/assets/ButtonUp_7x4.png index 1be79328b..48d0f9f01 100644 Binary files a/applications/system/hid_app/assets/ButtonUp_7x4.png and b/applications/system/hid_app/assets/ButtonUp_7x4.png differ diff --git a/applications/system/hid_app/assets/Button_18x18.png b/applications/system/hid_app/assets/Button_18x18.png index 30a5b4fab..2334dd8be 100644 Binary files a/applications/system/hid_app/assets/Button_18x18.png and b/applications/system/hid_app/assets/Button_18x18.png differ diff --git a/applications/system/hid_app/assets/Cmd_17x10.png b/applications/system/hid_app/assets/Cmd_17x10.png index b29da07b7..68b3be606 100644 Binary files a/applications/system/hid_app/assets/Cmd_17x10.png and b/applications/system/hid_app/assets/Cmd_17x10.png differ diff --git a/applications/system/hid_app/assets/Cmd_active_17x9.png b/applications/system/hid_app/assets/Cmd_active_17x9.png old mode 100755 new mode 100644 index 9d31b4eb3..9f9cdea99 Binary files a/applications/system/hid_app/assets/Cmd_active_17x9.png and b/applications/system/hid_app/assets/Cmd_active_17x9.png differ diff --git a/applications/system/hid_app/assets/Ctrl_17x10.png b/applications/system/hid_app/assets/Ctrl_17x10.png index 05be3292e..c70dd2c16 100644 Binary files a/applications/system/hid_app/assets/Ctrl_17x10.png and b/applications/system/hid_app/assets/Ctrl_17x10.png differ diff --git a/applications/system/hid_app/assets/Ctrl_active_17x9.png b/applications/system/hid_app/assets/Ctrl_active_17x9.png old mode 100755 new mode 100644 index 6fade6dd7..c16df04ee Binary files a/applications/system/hid_app/assets/Ctrl_active_17x9.png and b/applications/system/hid_app/assets/Ctrl_active_17x9.png differ diff --git a/applications/system/hid_app/assets/Del_17x10.png b/applications/system/hid_app/assets/Del_17x10.png index 95cbf7d5b..3fd55e92f 100644 Binary files a/applications/system/hid_app/assets/Del_17x10.png and b/applications/system/hid_app/assets/Del_17x10.png differ diff --git a/applications/system/hid_app/assets/DolphinDone_80x58.png b/applications/system/hid_app/assets/DolphinDone_80x58.png index 594d62d52..881aaa8d2 100644 Binary files a/applications/system/hid_app/assets/DolphinDone_80x58.png and b/applications/system/hid_app/assets/DolphinDone_80x58.png differ diff --git a/applications/system/hid_app/assets/Enter_11x7.png b/applications/system/hid_app/assets/Enter_11x7.png old mode 100755 new mode 100644 index d41b8feff..1b07df2cf Binary files a/applications/system/hid_app/assets/Enter_11x7.png and b/applications/system/hid_app/assets/Enter_11x7.png differ diff --git a/applications/system/hid_app/assets/Esc_17x10.png b/applications/system/hid_app/assets/Esc_17x10.png index 83a6f225f..bd7e3cb96 100644 Binary files a/applications/system/hid_app/assets/Esc_17x10.png and b/applications/system/hid_app/assets/Esc_17x10.png differ diff --git a/applications/system/hid_app/assets/Ok_btn_9x9.png b/applications/system/hid_app/assets/Ok_btn_9x9.png index 9a1539da2..ceff4e8a8 100644 Binary files a/applications/system/hid_app/assets/Ok_btn_9x9.png and b/applications/system/hid_app/assets/Ok_btn_9x9.png differ diff --git a/applications/system/hid_app/assets/Pin_arrow_down_7x9.png b/applications/system/hid_app/assets/Pin_arrow_down_7x9.png index 9687397af..dc97d3abc 100644 Binary files a/applications/system/hid_app/assets/Pin_arrow_down_7x9.png and b/applications/system/hid_app/assets/Pin_arrow_down_7x9.png differ diff --git a/applications/system/hid_app/assets/Pin_arrow_left_9x7.png b/applications/system/hid_app/assets/Pin_arrow_left_9x7.png index fb4ded78f..9b6ccb51f 100644 Binary files a/applications/system/hid_app/assets/Pin_arrow_left_9x7.png and b/applications/system/hid_app/assets/Pin_arrow_left_9x7.png differ diff --git a/applications/system/hid_app/assets/Pin_arrow_right_9x7.png b/applications/system/hid_app/assets/Pin_arrow_right_9x7.png index 97648d176..b79bca2e3 100644 Binary files a/applications/system/hid_app/assets/Pin_arrow_right_9x7.png and b/applications/system/hid_app/assets/Pin_arrow_right_9x7.png differ diff --git a/applications/system/hid_app/assets/Pin_arrow_up_7x9.png b/applications/system/hid_app/assets/Pin_arrow_up_7x9.png index a91a6fd5e..4e199c7d0 100644 Binary files a/applications/system/hid_app/assets/Pin_arrow_up_7x9.png and b/applications/system/hid_app/assets/Pin_arrow_up_7x9.png differ diff --git a/applications/system/hid_app/assets/Pin_back_arrow_10x8.png b/applications/system/hid_app/assets/Pin_back_arrow_10x8.png index 3bafabd14..64b25db5a 100644 Binary files a/applications/system/hid_app/assets/Pin_back_arrow_10x8.png and b/applications/system/hid_app/assets/Pin_back_arrow_10x8.png differ diff --git a/applications/system/hid_app/assets/Pressed_Button_13x13.png b/applications/system/hid_app/assets/Pressed_Button_13x13.png index 823926b84..d0e2c3a37 100644 Binary files a/applications/system/hid_app/assets/Pressed_Button_13x13.png and b/applications/system/hid_app/assets/Pressed_Button_13x13.png differ diff --git a/applications/system/hid_app/assets/Return_10x7.png b/applications/system/hid_app/assets/Return_10x7.png index ffa1e9aca..ebf0a7777 100644 Binary files a/applications/system/hid_app/assets/Return_10x7.png and b/applications/system/hid_app/assets/Return_10x7.png differ diff --git a/applications/system/hid_app/assets/Shift_active_7x9.png b/applications/system/hid_app/assets/Shift_active_7x9.png index 1ec9ce11e..1dbb762f9 100644 Binary files a/applications/system/hid_app/assets/Shift_active_7x9.png and b/applications/system/hid_app/assets/Shift_active_7x9.png differ diff --git a/applications/system/hid_app/assets/Shift_inactive_7x9.png b/applications/system/hid_app/assets/Shift_inactive_7x9.png index 1cd97076e..696e7e9ee 100644 Binary files a/applications/system/hid_app/assets/Shift_inactive_7x9.png and b/applications/system/hid_app/assets/Shift_inactive_7x9.png differ diff --git a/applications/system/hid_app/assets/Space_60x18.png b/applications/system/hid_app/assets/Space_60x18.png index e29f50ae9..7d2116ad5 100644 Binary files a/applications/system/hid_app/assets/Space_60x18.png and b/applications/system/hid_app/assets/Space_60x18.png differ diff --git a/applications/system/hid_app/assets/Space_65x18.png b/applications/system/hid_app/assets/Space_65x18.png index b60ae5097..eb417f674 100644 Binary files a/applications/system/hid_app/assets/Space_65x18.png and b/applications/system/hid_app/assets/Space_65x18.png differ diff --git a/applications/system/hid_app/assets/Tab_17x10.png b/applications/system/hid_app/assets/Tab_17x10.png index 4d8471483..0be2d938c 100644 Binary files a/applications/system/hid_app/assets/Tab_17x10.png and b/applications/system/hid_app/assets/Tab_17x10.png differ diff --git a/applications/system/hid_app/assets/Tab_19x12.png b/applications/system/hid_app/assets/Tab_19x12.png old mode 100755 new mode 100644 index 4dbde3bab..6748d1f49 Binary files a/applications/system/hid_app/assets/Tab_19x12.png and b/applications/system/hid_app/assets/Tab_19x12.png differ diff --git a/applications/system/hid_app/assets/Voldwn_6x6.png b/applications/system/hid_app/assets/Voldwn_6x6.png index d7a82a2df..d6d7e286a 100644 Binary files a/applications/system/hid_app/assets/Voldwn_6x6.png and b/applications/system/hid_app/assets/Voldwn_6x6.png differ diff --git a/applications/system/hid_app/assets/Volup_8x6.png b/applications/system/hid_app/assets/Volup_8x6.png index 4b7ec66d6..66477bc7b 100644 Binary files a/applications/system/hid_app/assets/Volup_8x6.png and b/applications/system/hid_app/assets/Volup_8x6.png differ diff --git a/applications/system/hid_app/assets/apostrophe_button_9x11.png b/applications/system/hid_app/assets/apostrophe_button_9x11.png index 0f54f0e2b..a4b2cab8e 100644 Binary files a/applications/system/hid_app/assets/apostrophe_button_9x11.png and b/applications/system/hid_app/assets/apostrophe_button_9x11.png differ diff --git a/applications/system/hid_app/assets/backslash_button_9x11.png b/applications/system/hid_app/assets/backslash_button_9x11.png old mode 100755 new mode 100644 index 6cac74a57..e579e113e Binary files a/applications/system/hid_app/assets/backslash_button_9x11.png and b/applications/system/hid_app/assets/backslash_button_9x11.png differ diff --git a/applications/system/hid_app/assets/backspace_19x11.png b/applications/system/hid_app/assets/backspace_19x11.png old mode 100755 new mode 100644 index caf92807b..80e91c3c2 Binary files a/applications/system/hid_app/assets/backspace_19x11.png and b/applications/system/hid_app/assets/backspace_19x11.png differ diff --git a/applications/system/hid_app/assets/backspace_hovered_9x11.png b/applications/system/hid_app/assets/backspace_hovered_9x11.png old mode 100755 new mode 100644 index 17cb1b740..a4acbf0db Binary files a/applications/system/hid_app/assets/backspace_hovered_9x11.png and b/applications/system/hid_app/assets/backspace_hovered_9x11.png differ diff --git a/applications/system/hid_app/assets/backtick_button_9x11.png b/applications/system/hid_app/assets/backtick_button_9x11.png old mode 100755 new mode 100644 index 1e5955a03..0d2b8942c Binary files a/applications/system/hid_app/assets/backtick_button_9x11.png and b/applications/system/hid_app/assets/backtick_button_9x11.png differ diff --git a/applications/system/hid_app/assets/brace_left_button_9x11.png b/applications/system/hid_app/assets/brace_left_button_9x11.png old mode 100755 new mode 100644 index a61db48f3..56eb69043 Binary files a/applications/system/hid_app/assets/brace_left_button_9x11.png and b/applications/system/hid_app/assets/brace_left_button_9x11.png differ diff --git a/applications/system/hid_app/assets/brace_right_button_9x11.png b/applications/system/hid_app/assets/brace_right_button_9x11.png old mode 100755 new mode 100644 index bf6b927f1..8df2c19ce Binary files a/applications/system/hid_app/assets/brace_right_button_9x11.png and b/applications/system/hid_app/assets/brace_right_button_9x11.png differ diff --git a/applications/system/hid_app/assets/equals_button_9x11.png b/applications/system/hid_app/assets/equals_button_9x11.png old mode 100755 new mode 100644 index 8fe8afe34..4d3232af2 Binary files a/applications/system/hid_app/assets/equals_button_9x11.png and b/applications/system/hid_app/assets/equals_button_9x11.png differ diff --git a/applications/system/hid_app/assets/hash_button_9x11.png b/applications/system/hid_app/assets/hash_button_9x11.png old mode 100755 new mode 100644 index bddc7aace..0a3974f64 Binary files a/applications/system/hid_app/assets/hash_button_9x11.png and b/applications/system/hid_app/assets/hash_button_9x11.png differ diff --git a/applications/system/hid_app/assets/percent_button_9x11.png b/applications/system/hid_app/assets/percent_button_9x11.png old mode 100755 new mode 100644 index ce12dcbf1..72190605b Binary files a/applications/system/hid_app/assets/percent_button_9x11.png and b/applications/system/hid_app/assets/percent_button_9x11.png differ diff --git a/applications/system/hid_app/assets/quote_button_9x11.png b/applications/system/hid_app/assets/quote_button_9x11.png old mode 100755 new mode 100644 index e96d29ddc..9fabcd26c Binary files a/applications/system/hid_app/assets/quote_button_9x11.png and b/applications/system/hid_app/assets/quote_button_9x11.png differ diff --git a/applications/system/hid_app/assets/slash_button_9x11.png b/applications/system/hid_app/assets/slash_button_9x11.png old mode 100755 new mode 100644 index 60871320f..b877b9106 Binary files a/applications/system/hid_app/assets/slash_button_9x11.png and b/applications/system/hid_app/assets/slash_button_9x11.png differ diff --git a/applications/system/hid_app/assets/sq_bracket_left_button_9x11.png b/applications/system/hid_app/assets/sq_bracket_left_button_9x11.png old mode 100755 new mode 100644 index 0983db129..ea50cd657 Binary files a/applications/system/hid_app/assets/sq_bracket_left_button_9x11.png and b/applications/system/hid_app/assets/sq_bracket_left_button_9x11.png differ diff --git a/applications/system/hid_app/assets/sq_bracket_right_button_9x11.png b/applications/system/hid_app/assets/sq_bracket_right_button_9x11.png old mode 100755 new mode 100644 index 48f9c77e4..bd18bbfad Binary files a/applications/system/hid_app/assets/sq_bracket_right_button_9x11.png and b/applications/system/hid_app/assets/sq_bracket_right_button_9x11.png differ diff --git a/applications/system/hid_app/assets/underscore_button_9x11.png b/applications/system/hid_app/assets/underscore_button_9x11.png old mode 100755 new mode 100644 index eb000cba5..7ab5cdbab Binary files a/applications/system/hid_app/assets/underscore_button_9x11.png and b/applications/system/hid_app/assets/underscore_button_9x11.png differ diff --git a/applications/system/hid_app/hid_ble_10px.png b/applications/system/hid_app/hid_ble_10px.png index d4d30afe0..27355f8db 100644 Binary files a/applications/system/hid_app/hid_ble_10px.png and b/applications/system/hid_app/hid_ble_10px.png differ diff --git a/applications/system/js_app/icon.png b/applications/system/js_app/icon.png index 77ac76337..48210a049 100644 Binary files a/applications/system/js_app/icon.png and b/applications/system/js_app/icon.png differ diff --git a/applications/system/snake_game/snake_10px.png b/applications/system/snake_game/snake_10px.png index 52d9fa7e0..3ace2de40 100644 Binary files a/applications/system/snake_game/snake_10px.png and b/applications/system/snake_game/snake_10px.png differ diff --git a/assets/dolphin/blocking/L0_NewMail_128x51/frame_0.png b/assets/dolphin/blocking/L0_NewMail_128x51/frame_0.png index 5f7f5fa42..d948c55bd 100644 Binary files a/assets/dolphin/blocking/L0_NewMail_128x51/frame_0.png and b/assets/dolphin/blocking/L0_NewMail_128x51/frame_0.png differ diff --git a/assets/dolphin/blocking/L0_NewMail_128x51/frame_1.png b/assets/dolphin/blocking/L0_NewMail_128x51/frame_1.png index db9bf227b..5730f1889 100644 Binary files a/assets/dolphin/blocking/L0_NewMail_128x51/frame_1.png and b/assets/dolphin/blocking/L0_NewMail_128x51/frame_1.png differ diff --git a/assets/dolphin/blocking/L0_NewMail_128x51/frame_2.png b/assets/dolphin/blocking/L0_NewMail_128x51/frame_2.png index 5394851f5..aa1061b94 100644 Binary files a/assets/dolphin/blocking/L0_NewMail_128x51/frame_2.png and b/assets/dolphin/blocking/L0_NewMail_128x51/frame_2.png differ diff --git a/assets/dolphin/blocking/L0_NewMail_128x51/frame_3.png b/assets/dolphin/blocking/L0_NewMail_128x51/frame_3.png index d16966fb4..cdcdda356 100644 Binary files a/assets/dolphin/blocking/L0_NewMail_128x51/frame_3.png and b/assets/dolphin/blocking/L0_NewMail_128x51/frame_3.png differ diff --git a/assets/dolphin/blocking/L0_NoDb_128x51/frame_0.png b/assets/dolphin/blocking/L0_NoDb_128x51/frame_0.png index 759007623..ee52444d8 100644 Binary files a/assets/dolphin/blocking/L0_NoDb_128x51/frame_0.png and b/assets/dolphin/blocking/L0_NoDb_128x51/frame_0.png differ diff --git a/assets/dolphin/blocking/L0_NoDb_128x51/frame_1.png b/assets/dolphin/blocking/L0_NoDb_128x51/frame_1.png index c9810b61e..a65475899 100644 Binary files a/assets/dolphin/blocking/L0_NoDb_128x51/frame_1.png and b/assets/dolphin/blocking/L0_NoDb_128x51/frame_1.png differ diff --git a/assets/dolphin/blocking/L0_NoDb_128x51/frame_2.png b/assets/dolphin/blocking/L0_NoDb_128x51/frame_2.png index e4d381b0a..4469a5cad 100644 Binary files a/assets/dolphin/blocking/L0_NoDb_128x51/frame_2.png and b/assets/dolphin/blocking/L0_NoDb_128x51/frame_2.png differ diff --git a/assets/dolphin/blocking/L0_NoDb_128x51/frame_3.png b/assets/dolphin/blocking/L0_NoDb_128x51/frame_3.png index b48aef978..c7668019d 100644 Binary files a/assets/dolphin/blocking/L0_NoDb_128x51/frame_3.png and b/assets/dolphin/blocking/L0_NoDb_128x51/frame_3.png differ diff --git a/assets/dolphin/blocking/L0_SdBad_128x51/frame_0.png b/assets/dolphin/blocking/L0_SdBad_128x51/frame_0.png index f9a7e073a..6b6ddb123 100644 Binary files a/assets/dolphin/blocking/L0_SdBad_128x51/frame_0.png and b/assets/dolphin/blocking/L0_SdBad_128x51/frame_0.png differ diff --git a/assets/dolphin/blocking/L0_SdBad_128x51/frame_1.png b/assets/dolphin/blocking/L0_SdBad_128x51/frame_1.png index 147561f0a..dffda3010 100644 Binary files a/assets/dolphin/blocking/L0_SdBad_128x51/frame_1.png and b/assets/dolphin/blocking/L0_SdBad_128x51/frame_1.png differ diff --git a/assets/dolphin/blocking/L0_SdOk_128x51/frame_0.png b/assets/dolphin/blocking/L0_SdOk_128x51/frame_0.png index 6ebbc1111..89af52e69 100644 Binary files a/assets/dolphin/blocking/L0_SdOk_128x51/frame_0.png and b/assets/dolphin/blocking/L0_SdOk_128x51/frame_0.png differ diff --git a/assets/dolphin/blocking/L0_SdOk_128x51/frame_1.png b/assets/dolphin/blocking/L0_SdOk_128x51/frame_1.png index 5f7a5d2a5..7417b7ed9 100644 Binary files a/assets/dolphin/blocking/L0_SdOk_128x51/frame_1.png and b/assets/dolphin/blocking/L0_SdOk_128x51/frame_1.png differ diff --git a/assets/dolphin/blocking/L0_SdOk_128x51/frame_2.png b/assets/dolphin/blocking/L0_SdOk_128x51/frame_2.png index a3450ae05..3e7d95af3 100644 Binary files a/assets/dolphin/blocking/L0_SdOk_128x51/frame_2.png and b/assets/dolphin/blocking/L0_SdOk_128x51/frame_2.png differ diff --git a/assets/dolphin/blocking/L0_SdOk_128x51/frame_3.png b/assets/dolphin/blocking/L0_SdOk_128x51/frame_3.png index 1e52f1513..78dc1e809 100644 Binary files a/assets/dolphin/blocking/L0_SdOk_128x51/frame_3.png and b/assets/dolphin/blocking/L0_SdOk_128x51/frame_3.png differ diff --git a/assets/dolphin/blocking/L0_Url_128x51/frame_0.png b/assets/dolphin/blocking/L0_Url_128x51/frame_0.png index 387c85ea2..e95d7c3a4 100644 Binary files a/assets/dolphin/blocking/L0_Url_128x51/frame_0.png and b/assets/dolphin/blocking/L0_Url_128x51/frame_0.png differ diff --git a/assets/dolphin/blocking/L0_Url_128x51/frame_1.png b/assets/dolphin/blocking/L0_Url_128x51/frame_1.png index 9975ca3f0..d614498e6 100644 Binary files a/assets/dolphin/blocking/L0_Url_128x51/frame_1.png and b/assets/dolphin/blocking/L0_Url_128x51/frame_1.png differ diff --git a/assets/dolphin/blocking/L0_Url_128x51/frame_2.png b/assets/dolphin/blocking/L0_Url_128x51/frame_2.png index 84241c3f1..e1e676d9d 100644 Binary files a/assets/dolphin/blocking/L0_Url_128x51/frame_2.png and b/assets/dolphin/blocking/L0_Url_128x51/frame_2.png differ diff --git a/assets/dolphin/blocking/L0_Url_128x51/frame_3.png b/assets/dolphin/blocking/L0_Url_128x51/frame_3.png index c44b171bf..928c1a78d 100644 Binary files a/assets/dolphin/blocking/L0_Url_128x51/frame_3.png and b/assets/dolphin/blocking/L0_Url_128x51/frame_3.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_0.png b/assets/dolphin/external/L1_Akira_128x64/frame_0.png old mode 100755 new mode 100644 index 36c1bbd49..bef9d522d Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_0.png and b/assets/dolphin/external/L1_Akira_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_1.png b/assets/dolphin/external/L1_Akira_128x64/frame_1.png old mode 100755 new mode 100644 index 1950347a6..4d476beed Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_1.png and b/assets/dolphin/external/L1_Akira_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_10.png b/assets/dolphin/external/L1_Akira_128x64/frame_10.png old mode 100755 new mode 100644 index 65a0154d4..ca01a68d1 Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_10.png and b/assets/dolphin/external/L1_Akira_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_11.png b/assets/dolphin/external/L1_Akira_128x64/frame_11.png old mode 100755 new mode 100644 index f7c086431..f767fe332 Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_11.png and b/assets/dolphin/external/L1_Akira_128x64/frame_11.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_12.png b/assets/dolphin/external/L1_Akira_128x64/frame_12.png old mode 100755 new mode 100644 index e3bfd179d..701b70c43 Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_12.png and b/assets/dolphin/external/L1_Akira_128x64/frame_12.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_13.png b/assets/dolphin/external/L1_Akira_128x64/frame_13.png old mode 100755 new mode 100644 index 0094ab5ae..01d8b8c9a Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_13.png and b/assets/dolphin/external/L1_Akira_128x64/frame_13.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_14.png b/assets/dolphin/external/L1_Akira_128x64/frame_14.png old mode 100755 new mode 100644 index b36fd051f..18da66c10 Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_14.png and b/assets/dolphin/external/L1_Akira_128x64/frame_14.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_15.png b/assets/dolphin/external/L1_Akira_128x64/frame_15.png old mode 100755 new mode 100644 index 33607328a..529ae406e Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_15.png and b/assets/dolphin/external/L1_Akira_128x64/frame_15.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_16.png b/assets/dolphin/external/L1_Akira_128x64/frame_16.png old mode 100755 new mode 100644 index e115834ef..d7c015212 Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_16.png and b/assets/dolphin/external/L1_Akira_128x64/frame_16.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_17.png b/assets/dolphin/external/L1_Akira_128x64/frame_17.png old mode 100755 new mode 100644 index 8e5fa20d8..95068c50f Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_17.png and b/assets/dolphin/external/L1_Akira_128x64/frame_17.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_18.png b/assets/dolphin/external/L1_Akira_128x64/frame_18.png old mode 100755 new mode 100644 index 6a658e0e2..87069ea8e Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_18.png and b/assets/dolphin/external/L1_Akira_128x64/frame_18.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_19.png b/assets/dolphin/external/L1_Akira_128x64/frame_19.png old mode 100755 new mode 100644 index cba72f16f..48e607096 Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_19.png and b/assets/dolphin/external/L1_Akira_128x64/frame_19.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_2.png b/assets/dolphin/external/L1_Akira_128x64/frame_2.png old mode 100755 new mode 100644 index 9f4cc1fb9..72febfa30 Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_2.png and b/assets/dolphin/external/L1_Akira_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_20.png b/assets/dolphin/external/L1_Akira_128x64/frame_20.png old mode 100755 new mode 100644 index 457fa7a00..4b4c5b14c Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_20.png and b/assets/dolphin/external/L1_Akira_128x64/frame_20.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_21.png b/assets/dolphin/external/L1_Akira_128x64/frame_21.png old mode 100755 new mode 100644 index 727511100..ec6168e31 Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_21.png and b/assets/dolphin/external/L1_Akira_128x64/frame_21.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_22.png b/assets/dolphin/external/L1_Akira_128x64/frame_22.png old mode 100755 new mode 100644 index 213e05771..c90432ebe Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_22.png and b/assets/dolphin/external/L1_Akira_128x64/frame_22.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_23.png b/assets/dolphin/external/L1_Akira_128x64/frame_23.png old mode 100755 new mode 100644 index 5d3571db8..b49348856 Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_23.png and b/assets/dolphin/external/L1_Akira_128x64/frame_23.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_24.png b/assets/dolphin/external/L1_Akira_128x64/frame_24.png old mode 100755 new mode 100644 index e54d47e29..b5ea1a21c Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_24.png and b/assets/dolphin/external/L1_Akira_128x64/frame_24.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_25.png b/assets/dolphin/external/L1_Akira_128x64/frame_25.png old mode 100755 new mode 100644 index 26c944d16..9da0a4cc6 Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_25.png and b/assets/dolphin/external/L1_Akira_128x64/frame_25.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_26.png b/assets/dolphin/external/L1_Akira_128x64/frame_26.png old mode 100755 new mode 100644 index 2972318cd..e7838e39f Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_26.png and b/assets/dolphin/external/L1_Akira_128x64/frame_26.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_27.png b/assets/dolphin/external/L1_Akira_128x64/frame_27.png old mode 100755 new mode 100644 index 397face78..b1ae3ee6c Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_27.png and b/assets/dolphin/external/L1_Akira_128x64/frame_27.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_28.png b/assets/dolphin/external/L1_Akira_128x64/frame_28.png old mode 100755 new mode 100644 index 6ca246f57..3b12a422d Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_28.png and b/assets/dolphin/external/L1_Akira_128x64/frame_28.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_29.png b/assets/dolphin/external/L1_Akira_128x64/frame_29.png old mode 100755 new mode 100644 index 8bcc83a1d..b4a35158e Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_29.png and b/assets/dolphin/external/L1_Akira_128x64/frame_29.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_3.png b/assets/dolphin/external/L1_Akira_128x64/frame_3.png old mode 100755 new mode 100644 index 7a1d2b36e..9afce23c9 Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_3.png and b/assets/dolphin/external/L1_Akira_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_30.png b/assets/dolphin/external/L1_Akira_128x64/frame_30.png old mode 100755 new mode 100644 index 9f477f8d7..870255497 Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_30.png and b/assets/dolphin/external/L1_Akira_128x64/frame_30.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_31.png b/assets/dolphin/external/L1_Akira_128x64/frame_31.png old mode 100755 new mode 100644 index 4f2deb5c5..68249a4d5 Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_31.png and b/assets/dolphin/external/L1_Akira_128x64/frame_31.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_32.png b/assets/dolphin/external/L1_Akira_128x64/frame_32.png old mode 100755 new mode 100644 index 4f59f9955..5eb2b770b Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_32.png and b/assets/dolphin/external/L1_Akira_128x64/frame_32.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_33.png b/assets/dolphin/external/L1_Akira_128x64/frame_33.png old mode 100755 new mode 100644 index 1adf3d351..795b88fb4 Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_33.png and b/assets/dolphin/external/L1_Akira_128x64/frame_33.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_34.png b/assets/dolphin/external/L1_Akira_128x64/frame_34.png old mode 100755 new mode 100644 index 5ffc55f75..cd9673d56 Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_34.png and b/assets/dolphin/external/L1_Akira_128x64/frame_34.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_35.png b/assets/dolphin/external/L1_Akira_128x64/frame_35.png old mode 100755 new mode 100644 index 9a101f0aa..7a2154c4b Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_35.png and b/assets/dolphin/external/L1_Akira_128x64/frame_35.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_4.png b/assets/dolphin/external/L1_Akira_128x64/frame_4.png old mode 100755 new mode 100644 index ea42d75d6..55f3b66a6 Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_4.png and b/assets/dolphin/external/L1_Akira_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_5.png b/assets/dolphin/external/L1_Akira_128x64/frame_5.png old mode 100755 new mode 100644 index c347d3035..6b5666677 Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_5.png and b/assets/dolphin/external/L1_Akira_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_6.png b/assets/dolphin/external/L1_Akira_128x64/frame_6.png old mode 100755 new mode 100644 index 07a7c70c0..f16295ffd Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_6.png and b/assets/dolphin/external/L1_Akira_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_7.png b/assets/dolphin/external/L1_Akira_128x64/frame_7.png old mode 100755 new mode 100644 index 275f2a357..e28db7832 Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_7.png and b/assets/dolphin/external/L1_Akira_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_8.png b/assets/dolphin/external/L1_Akira_128x64/frame_8.png old mode 100755 new mode 100644 index 1feb3e875..e44453afa Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_8.png and b/assets/dolphin/external/L1_Akira_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L1_Akira_128x64/frame_9.png b/assets/dolphin/external/L1_Akira_128x64/frame_9.png old mode 100755 new mode 100644 index e0ba8250f..aed5833f3 Binary files a/assets/dolphin/external/L1_Akira_128x64/frame_9.png and b/assets/dolphin/external/L1_Akira_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L1_Boxing_128x64/frame_0.png b/assets/dolphin/external/L1_Boxing_128x64/frame_0.png index b6b2c75b8..59d3ef3fa 100644 Binary files a/assets/dolphin/external/L1_Boxing_128x64/frame_0.png and b/assets/dolphin/external/L1_Boxing_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L1_Boxing_128x64/frame_1.png b/assets/dolphin/external/L1_Boxing_128x64/frame_1.png index 347d71cc2..ecbd27419 100644 Binary files a/assets/dolphin/external/L1_Boxing_128x64/frame_1.png and b/assets/dolphin/external/L1_Boxing_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L1_Boxing_128x64/frame_2.png b/assets/dolphin/external/L1_Boxing_128x64/frame_2.png index 51a7fd236..7c5f0b6cc 100644 Binary files a/assets/dolphin/external/L1_Boxing_128x64/frame_2.png and b/assets/dolphin/external/L1_Boxing_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L1_Boxing_128x64/frame_3.png b/assets/dolphin/external/L1_Boxing_128x64/frame_3.png index 7004e10c3..aee654cc8 100644 Binary files a/assets/dolphin/external/L1_Boxing_128x64/frame_3.png and b/assets/dolphin/external/L1_Boxing_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L1_Boxing_128x64/frame_4.png b/assets/dolphin/external/L1_Boxing_128x64/frame_4.png index 556cb8948..eef11402b 100644 Binary files a/assets/dolphin/external/L1_Boxing_128x64/frame_4.png and b/assets/dolphin/external/L1_Boxing_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L1_Boxing_128x64/frame_5.png b/assets/dolphin/external/L1_Boxing_128x64/frame_5.png index fd6170340..cf2299b28 100644 Binary files a/assets/dolphin/external/L1_Boxing_128x64/frame_5.png and b/assets/dolphin/external/L1_Boxing_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L1_Boxing_128x64/frame_6.png b/assets/dolphin/external/L1_Boxing_128x64/frame_6.png index 34839517c..853d85fb7 100644 Binary files a/assets/dolphin/external/L1_Boxing_128x64/frame_6.png and b/assets/dolphin/external/L1_Boxing_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L1_Cry_128x64/frame_0.png b/assets/dolphin/external/L1_Cry_128x64/frame_0.png index b2636f005..58ceddd8f 100644 Binary files a/assets/dolphin/external/L1_Cry_128x64/frame_0.png and b/assets/dolphin/external/L1_Cry_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L1_Cry_128x64/frame_1.png b/assets/dolphin/external/L1_Cry_128x64/frame_1.png index e73499e94..df0abf137 100644 Binary files a/assets/dolphin/external/L1_Cry_128x64/frame_1.png and b/assets/dolphin/external/L1_Cry_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L1_Cry_128x64/frame_2.png b/assets/dolphin/external/L1_Cry_128x64/frame_2.png index 16005a990..17b991809 100644 Binary files a/assets/dolphin/external/L1_Cry_128x64/frame_2.png and b/assets/dolphin/external/L1_Cry_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L1_Cry_128x64/frame_3.png b/assets/dolphin/external/L1_Cry_128x64/frame_3.png index 02e833dec..e0c975bea 100644 Binary files a/assets/dolphin/external/L1_Cry_128x64/frame_3.png and b/assets/dolphin/external/L1_Cry_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L1_Cry_128x64/frame_4.png b/assets/dolphin/external/L1_Cry_128x64/frame_4.png index 3f7dff4db..4e2e80240 100644 Binary files a/assets/dolphin/external/L1_Cry_128x64/frame_4.png and b/assets/dolphin/external/L1_Cry_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L1_Cry_128x64/frame_5.png b/assets/dolphin/external/L1_Cry_128x64/frame_5.png index 385106787..0a3285397 100644 Binary files a/assets/dolphin/external/L1_Cry_128x64/frame_5.png and b/assets/dolphin/external/L1_Cry_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L1_Cry_128x64/frame_6.png b/assets/dolphin/external/L1_Cry_128x64/frame_6.png index 7871674db..4bc351b8d 100644 Binary files a/assets/dolphin/external/L1_Cry_128x64/frame_6.png and b/assets/dolphin/external/L1_Cry_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L1_Cry_128x64/frame_7.png b/assets/dolphin/external/L1_Cry_128x64/frame_7.png index 5865e91e1..f1f78883f 100644 Binary files a/assets/dolphin/external/L1_Cry_128x64/frame_7.png and b/assets/dolphin/external/L1_Cry_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_0.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_0.png index 396ec251a..120855f61 100644 Binary files a/assets/dolphin/external/L1_Furippa1_128x64/frame_0.png and b/assets/dolphin/external/L1_Furippa1_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_1.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_1.png index 2a497f85a..a9346b8da 100644 Binary files a/assets/dolphin/external/L1_Furippa1_128x64/frame_1.png and b/assets/dolphin/external/L1_Furippa1_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_10.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_10.png index d33f1e416..d4ab0e356 100644 Binary files a/assets/dolphin/external/L1_Furippa1_128x64/frame_10.png and b/assets/dolphin/external/L1_Furippa1_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_11.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_11.png index e5ee82f70..2d98d57ab 100644 Binary files a/assets/dolphin/external/L1_Furippa1_128x64/frame_11.png and b/assets/dolphin/external/L1_Furippa1_128x64/frame_11.png differ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_12.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_12.png index f3059dde7..95d09d14b 100644 Binary files a/assets/dolphin/external/L1_Furippa1_128x64/frame_12.png and b/assets/dolphin/external/L1_Furippa1_128x64/frame_12.png differ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_13.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_13.png index 5d1ff45be..c385a5ec4 100644 Binary files a/assets/dolphin/external/L1_Furippa1_128x64/frame_13.png and b/assets/dolphin/external/L1_Furippa1_128x64/frame_13.png differ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_14.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_14.png index d46f62e89..25b4ec565 100644 Binary files a/assets/dolphin/external/L1_Furippa1_128x64/frame_14.png and b/assets/dolphin/external/L1_Furippa1_128x64/frame_14.png differ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_15.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_15.png index ec11dbd03..d9ef6edbb 100644 Binary files a/assets/dolphin/external/L1_Furippa1_128x64/frame_15.png and b/assets/dolphin/external/L1_Furippa1_128x64/frame_15.png differ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_16.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_16.png index 720e95f9e..d68243826 100644 Binary files a/assets/dolphin/external/L1_Furippa1_128x64/frame_16.png and b/assets/dolphin/external/L1_Furippa1_128x64/frame_16.png differ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_17.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_17.png index 7debe764f..1a94e80b6 100644 Binary files a/assets/dolphin/external/L1_Furippa1_128x64/frame_17.png and b/assets/dolphin/external/L1_Furippa1_128x64/frame_17.png differ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_18.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_18.png index d3674a02b..54615c613 100644 Binary files a/assets/dolphin/external/L1_Furippa1_128x64/frame_18.png and b/assets/dolphin/external/L1_Furippa1_128x64/frame_18.png differ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_2.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_2.png index ba4435157..ca7cb9dbc 100644 Binary files a/assets/dolphin/external/L1_Furippa1_128x64/frame_2.png and b/assets/dolphin/external/L1_Furippa1_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_3.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_3.png index c0ee41623..5a18e3cbe 100644 Binary files a/assets/dolphin/external/L1_Furippa1_128x64/frame_3.png and b/assets/dolphin/external/L1_Furippa1_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_4.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_4.png index ecda81274..909c6106c 100644 Binary files a/assets/dolphin/external/L1_Furippa1_128x64/frame_4.png and b/assets/dolphin/external/L1_Furippa1_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_5.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_5.png index e8662b2eb..582e2b19f 100644 Binary files a/assets/dolphin/external/L1_Furippa1_128x64/frame_5.png and b/assets/dolphin/external/L1_Furippa1_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_6.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_6.png index 29cadd14e..d1e4f0af4 100644 Binary files a/assets/dolphin/external/L1_Furippa1_128x64/frame_6.png and b/assets/dolphin/external/L1_Furippa1_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_7.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_7.png index 18e793b58..120855f61 100644 Binary files a/assets/dolphin/external/L1_Furippa1_128x64/frame_7.png and b/assets/dolphin/external/L1_Furippa1_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_8.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_8.png index 34b2e4001..521a8ec43 100644 Binary files a/assets/dolphin/external/L1_Furippa1_128x64/frame_8.png and b/assets/dolphin/external/L1_Furippa1_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L1_Furippa1_128x64/frame_9.png b/assets/dolphin/external/L1_Furippa1_128x64/frame_9.png index d192f2e34..77d0198d0 100644 Binary files a/assets/dolphin/external/L1_Furippa1_128x64/frame_9.png and b/assets/dolphin/external/L1_Furippa1_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_0.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_0.png index 8b8dc80bc..ed6f4a71f 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_0.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_1.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_1.png index 956de6170..f2dba5e87 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_1.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_10.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_10.png index 93fdaa076..bd6291f99 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_10.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_11.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_11.png index a4e194825..e4a6d1639 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_11.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_11.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_12.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_12.png index 9cbcbd070..fc62957e2 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_12.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_12.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_13.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_13.png index a745cdb03..ef2875aef 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_13.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_13.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_14.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_14.png index 768f471ec..e56f7c6c4 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_14.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_14.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_15.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_15.png index 2f50fb8c9..1bb46d54a 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_15.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_15.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_16.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_16.png index fc7b76696..76ebd1f39 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_16.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_16.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_17.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_17.png index 013e2008a..7a6339638 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_17.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_17.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_18.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_18.png index 795120e77..172ee4d9c 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_18.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_18.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_19.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_19.png index 52061a5a2..afd4c496f 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_19.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_19.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_2.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_2.png index 10afed391..5f3fe2804 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_2.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_20.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_20.png index 52f87f3a8..287800454 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_20.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_20.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_21.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_21.png index 9696e0b5c..50ef42181 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_21.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_21.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_22.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_22.png index d23ee492b..ebab212e2 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_22.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_22.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_23.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_23.png index 9d368900c..55d2e5695 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_23.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_23.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_24.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_24.png index daf0788ad..df78c0887 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_24.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_24.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_25.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_25.png index b40333654..9d71ca41b 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_25.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_25.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_26.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_26.png index 9d499f23d..ea66720dd 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_26.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_26.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_27.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_27.png index 0291dfb58..0ee0b2135 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_27.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_27.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_28.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_28.png index 54a889d81..02b31050b 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_28.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_28.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_29.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_29.png index ba79b3b88..c00255748 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_29.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_29.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_3.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_3.png index bedf366c6..9cac27897 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_3.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_30.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_30.png index 0731760df..8d9176c4c 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_30.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_30.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_31.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_31.png index 898efdc4b..d73a65583 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_31.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_31.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_32.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_32.png index 39f5db8a0..c97abe79b 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_32.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_32.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_33.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_33.png index bee4cff08..20299c04d 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_33.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_33.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_34.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_34.png index 969b91193..bf89e9d7b 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_34.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_34.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_35.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_35.png index a72cf1823..40440a0e1 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_35.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_35.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_36.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_36.png index 9a13e7c67..627a02ef2 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_36.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_36.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_37.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_37.png index da3ee77f3..7cb901f41 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_37.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_37.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_38.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_38.png index 93da7f4f9..6b46de609 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_38.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_38.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_39.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_39.png index 7510931b4..a2946bff3 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_39.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_39.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_4.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_4.png index f99454b16..314e716ed 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_4.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_40.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_40.png index a17a14044..5cb229d26 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_40.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_40.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_41.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_41.png index f763540c9..048d4dfeb 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_41.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_41.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_42.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_42.png index 97a829e9b..6ec37e4a6 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_42.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_42.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_43.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_43.png index 7eadf7518..efb7389df 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_43.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_43.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_44.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_44.png index 5241195d3..80a09122d 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_44.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_44.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_45.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_45.png index 2a3ea8e23..232a5c63a 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_45.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_45.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_46.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_46.png index f4b263b19..3d2b6a87b 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_46.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_46.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_47.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_47.png index 1563ff39b..90a5aa5d6 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_47.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_47.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_5.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_5.png index 394bb53df..934c098b3 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_5.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_6.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_6.png index 3f84ad47e..54ad31fb4 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_6.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_7.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_7.png index 8ea650ad0..148851185 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_7.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_8.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_8.png index 2c8cf3f5d..542ff45cb 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_8.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L1_Kaiju_128x64/frame_9.png b/assets/dolphin/external/L1_Kaiju_128x64/frame_9.png index caf6a90ef..cf612c74e 100644 Binary files a/assets/dolphin/external/L1_Kaiju_128x64/frame_9.png and b/assets/dolphin/external/L1_Kaiju_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L1_Laptop_128x51/frame_0.png b/assets/dolphin/external/L1_Laptop_128x51/frame_0.png index a42e97fc4..cd0f0bfb4 100644 Binary files a/assets/dolphin/external/L1_Laptop_128x51/frame_0.png and b/assets/dolphin/external/L1_Laptop_128x51/frame_0.png differ diff --git a/assets/dolphin/external/L1_Laptop_128x51/frame_1.png b/assets/dolphin/external/L1_Laptop_128x51/frame_1.png index 90152d2b3..3b326e584 100644 Binary files a/assets/dolphin/external/L1_Laptop_128x51/frame_1.png and b/assets/dolphin/external/L1_Laptop_128x51/frame_1.png differ diff --git a/assets/dolphin/external/L1_Laptop_128x51/frame_2.png b/assets/dolphin/external/L1_Laptop_128x51/frame_2.png index 93df45f84..d8a2623b4 100644 Binary files a/assets/dolphin/external/L1_Laptop_128x51/frame_2.png and b/assets/dolphin/external/L1_Laptop_128x51/frame_2.png differ diff --git a/assets/dolphin/external/L1_Laptop_128x51/frame_3.png b/assets/dolphin/external/L1_Laptop_128x51/frame_3.png index a86b5e744..d4ab7525c 100644 Binary files a/assets/dolphin/external/L1_Laptop_128x51/frame_3.png and b/assets/dolphin/external/L1_Laptop_128x51/frame_3.png differ diff --git a/assets/dolphin/external/L1_Laptop_128x51/frame_4.png b/assets/dolphin/external/L1_Laptop_128x51/frame_4.png index 8ca6f6319..ef5fc0e7f 100644 Binary files a/assets/dolphin/external/L1_Laptop_128x51/frame_4.png and b/assets/dolphin/external/L1_Laptop_128x51/frame_4.png differ diff --git a/assets/dolphin/external/L1_Laptop_128x51/frame_5.png b/assets/dolphin/external/L1_Laptop_128x51/frame_5.png index ef1a75b90..0f0528f50 100644 Binary files a/assets/dolphin/external/L1_Laptop_128x51/frame_5.png and b/assets/dolphin/external/L1_Laptop_128x51/frame_5.png differ diff --git a/assets/dolphin/external/L1_Laptop_128x51/frame_6.png b/assets/dolphin/external/L1_Laptop_128x51/frame_6.png index 7e148697b..1c06ae08f 100644 Binary files a/assets/dolphin/external/L1_Laptop_128x51/frame_6.png and b/assets/dolphin/external/L1_Laptop_128x51/frame_6.png differ diff --git a/assets/dolphin/external/L1_Laptop_128x51/frame_7.png b/assets/dolphin/external/L1_Laptop_128x51/frame_7.png index ca19b669f..24a9b853a 100644 Binary files a/assets/dolphin/external/L1_Laptop_128x51/frame_7.png and b/assets/dolphin/external/L1_Laptop_128x51/frame_7.png differ diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_0.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_0.png index c7751a1d4..011570b2c 100644 Binary files a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_0.png and b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_1.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_1.png index 20b3a7104..6ee8edd66 100644 Binary files a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_1.png and b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_10.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_10.png index ef2ed21d6..c25a72534 100644 Binary files a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_10.png and b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_11.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_11.png index 0d2610a11..420ee0ef5 100644 Binary files a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_11.png and b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_11.png differ diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_12.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_12.png index 1edc93480..fef1b5d50 100644 Binary files a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_12.png and b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_12.png differ diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_2.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_2.png index 5752d80e6..64103f1db 100644 Binary files a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_2.png and b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_3.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_3.png index f62078f84..a05fdf825 100644 Binary files a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_3.png and b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_4.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_4.png index 021e05822..569fc7779 100644 Binary files a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_4.png and b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_5.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_5.png index d7e88112a..d8ab4235c 100644 Binary files a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_5.png and b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_6.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_6.png index 142ebbca0..c927e7928 100644 Binary files a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_6.png and b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_7.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_7.png index 26af84948..898ecd842 100644 Binary files a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_7.png and b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_8.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_8.png index d307e7a27..da93d6f14 100644 Binary files a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_8.png and b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_9.png b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_9.png index 0d28a8615..edf48b0f0 100644 Binary files a/assets/dolphin/external/L1_Leaving_sad_128x64/frame_9.png and b/assets/dolphin/external/L1_Leaving_sad_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_0.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_0.png index 04aa17ac0..c1046f9e1 100644 Binary files a/assets/dolphin/external/L1_Mad_fist_128x64/frame_0.png and b/assets/dolphin/external/L1_Mad_fist_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_1.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_1.png index d93b1f588..24c08c043 100644 Binary files a/assets/dolphin/external/L1_Mad_fist_128x64/frame_1.png and b/assets/dolphin/external/L1_Mad_fist_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_10.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_10.png index 47185499d..324adab8c 100644 Binary files a/assets/dolphin/external/L1_Mad_fist_128x64/frame_10.png and b/assets/dolphin/external/L1_Mad_fist_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_11.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_11.png index d90fd3d5b..5cbb23ec5 100644 Binary files a/assets/dolphin/external/L1_Mad_fist_128x64/frame_11.png and b/assets/dolphin/external/L1_Mad_fist_128x64/frame_11.png differ diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_12.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_12.png index 15ded2672..e9562ab71 100644 Binary files a/assets/dolphin/external/L1_Mad_fist_128x64/frame_12.png and b/assets/dolphin/external/L1_Mad_fist_128x64/frame_12.png differ diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_13.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_13.png index 13ee0450e..449235a1e 100644 Binary files a/assets/dolphin/external/L1_Mad_fist_128x64/frame_13.png and b/assets/dolphin/external/L1_Mad_fist_128x64/frame_13.png differ diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_2.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_2.png index 32c0a1b9b..c94fbaf16 100644 Binary files a/assets/dolphin/external/L1_Mad_fist_128x64/frame_2.png and b/assets/dolphin/external/L1_Mad_fist_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_3.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_3.png index 93593594e..eb23cfe0c 100644 Binary files a/assets/dolphin/external/L1_Mad_fist_128x64/frame_3.png and b/assets/dolphin/external/L1_Mad_fist_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_4.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_4.png index d6ca9b82d..1db181127 100644 Binary files a/assets/dolphin/external/L1_Mad_fist_128x64/frame_4.png and b/assets/dolphin/external/L1_Mad_fist_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_5.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_5.png index 0421d8f6f..107d82779 100644 Binary files a/assets/dolphin/external/L1_Mad_fist_128x64/frame_5.png and b/assets/dolphin/external/L1_Mad_fist_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_6.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_6.png index 17930e075..6c2fa6ecb 100644 Binary files a/assets/dolphin/external/L1_Mad_fist_128x64/frame_6.png and b/assets/dolphin/external/L1_Mad_fist_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_7.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_7.png index d4115d240..fb13a48b0 100644 Binary files a/assets/dolphin/external/L1_Mad_fist_128x64/frame_7.png and b/assets/dolphin/external/L1_Mad_fist_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_8.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_8.png index 570c8b0c4..9cf7366e4 100644 Binary files a/assets/dolphin/external/L1_Mad_fist_128x64/frame_8.png and b/assets/dolphin/external/L1_Mad_fist_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L1_Mad_fist_128x64/frame_9.png b/assets/dolphin/external/L1_Mad_fist_128x64/frame_9.png index 2b6b6e57c..27e3dc369 100644 Binary files a/assets/dolphin/external/L1_Mad_fist_128x64/frame_9.png and b/assets/dolphin/external/L1_Mad_fist_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_0.png b/assets/dolphin/external/L1_Mods_128x64/frame_0.png index 220908495..e185204ee 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_0.png and b/assets/dolphin/external/L1_Mods_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_1.png b/assets/dolphin/external/L1_Mods_128x64/frame_1.png index 9123906fb..69bff228b 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_1.png and b/assets/dolphin/external/L1_Mods_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_10.png b/assets/dolphin/external/L1_Mods_128x64/frame_10.png index e90ad5e90..d09cc03a0 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_10.png and b/assets/dolphin/external/L1_Mods_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_11.png b/assets/dolphin/external/L1_Mods_128x64/frame_11.png index 031c0ad81..78ca6798f 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_11.png and b/assets/dolphin/external/L1_Mods_128x64/frame_11.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_12.png b/assets/dolphin/external/L1_Mods_128x64/frame_12.png index 856e068fd..bfe678880 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_12.png and b/assets/dolphin/external/L1_Mods_128x64/frame_12.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_13.png b/assets/dolphin/external/L1_Mods_128x64/frame_13.png index a0366b2cf..ad29e872d 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_13.png and b/assets/dolphin/external/L1_Mods_128x64/frame_13.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_14.png b/assets/dolphin/external/L1_Mods_128x64/frame_14.png index 24fd557ab..94ef0e680 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_14.png and b/assets/dolphin/external/L1_Mods_128x64/frame_14.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_15.png b/assets/dolphin/external/L1_Mods_128x64/frame_15.png index 3bf1d3ed2..5f3e54d95 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_15.png and b/assets/dolphin/external/L1_Mods_128x64/frame_15.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_16.png b/assets/dolphin/external/L1_Mods_128x64/frame_16.png index f0b44898f..7bd404a93 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_16.png and b/assets/dolphin/external/L1_Mods_128x64/frame_16.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_17.png b/assets/dolphin/external/L1_Mods_128x64/frame_17.png index c98c70c91..f10d328f9 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_17.png and b/assets/dolphin/external/L1_Mods_128x64/frame_17.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_18.png b/assets/dolphin/external/L1_Mods_128x64/frame_18.png index 4f7b7ae82..05cdb7be8 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_18.png and b/assets/dolphin/external/L1_Mods_128x64/frame_18.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_19.png b/assets/dolphin/external/L1_Mods_128x64/frame_19.png index b3ad6700c..c7e290ff9 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_19.png and b/assets/dolphin/external/L1_Mods_128x64/frame_19.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_2.png b/assets/dolphin/external/L1_Mods_128x64/frame_2.png index c4aac4b91..bba9f165e 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_2.png and b/assets/dolphin/external/L1_Mods_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_20.png b/assets/dolphin/external/L1_Mods_128x64/frame_20.png index ea2eae4d7..76f900792 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_20.png and b/assets/dolphin/external/L1_Mods_128x64/frame_20.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_21.png b/assets/dolphin/external/L1_Mods_128x64/frame_21.png index 00a7a6e99..a0c56bb31 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_21.png and b/assets/dolphin/external/L1_Mods_128x64/frame_21.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_22.png b/assets/dolphin/external/L1_Mods_128x64/frame_22.png index 137d5ddf6..bd8464e4e 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_22.png and b/assets/dolphin/external/L1_Mods_128x64/frame_22.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_23.png b/assets/dolphin/external/L1_Mods_128x64/frame_23.png index 89690fc03..4074e0983 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_23.png and b/assets/dolphin/external/L1_Mods_128x64/frame_23.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_24.png b/assets/dolphin/external/L1_Mods_128x64/frame_24.png index 53d7b07a5..2aa0c42e0 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_24.png and b/assets/dolphin/external/L1_Mods_128x64/frame_24.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_25.png b/assets/dolphin/external/L1_Mods_128x64/frame_25.png index 2838804e5..776f1a73d 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_25.png and b/assets/dolphin/external/L1_Mods_128x64/frame_25.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_26.png b/assets/dolphin/external/L1_Mods_128x64/frame_26.png index 2af49cf17..4df95f375 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_26.png and b/assets/dolphin/external/L1_Mods_128x64/frame_26.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_27.png b/assets/dolphin/external/L1_Mods_128x64/frame_27.png index 7dc44d061..3ee650af3 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_27.png and b/assets/dolphin/external/L1_Mods_128x64/frame_27.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_28.png b/assets/dolphin/external/L1_Mods_128x64/frame_28.png index 87df75ff7..406d965ea 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_28.png and b/assets/dolphin/external/L1_Mods_128x64/frame_28.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_29.png b/assets/dolphin/external/L1_Mods_128x64/frame_29.png index 2fdb9d736..1a46e8b01 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_29.png and b/assets/dolphin/external/L1_Mods_128x64/frame_29.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_3.png b/assets/dolphin/external/L1_Mods_128x64/frame_3.png index 1b0e77426..ea3f7c006 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_3.png and b/assets/dolphin/external/L1_Mods_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_30.png b/assets/dolphin/external/L1_Mods_128x64/frame_30.png index 785f19fd0..f3ca77191 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_30.png and b/assets/dolphin/external/L1_Mods_128x64/frame_30.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_31.png b/assets/dolphin/external/L1_Mods_128x64/frame_31.png index 36310f705..13917efdd 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_31.png and b/assets/dolphin/external/L1_Mods_128x64/frame_31.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_32.png b/assets/dolphin/external/L1_Mods_128x64/frame_32.png index 92db8f024..f4d0972d8 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_32.png and b/assets/dolphin/external/L1_Mods_128x64/frame_32.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_33.png b/assets/dolphin/external/L1_Mods_128x64/frame_33.png index 768030b3c..27e17fba6 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_33.png and b/assets/dolphin/external/L1_Mods_128x64/frame_33.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_34.png b/assets/dolphin/external/L1_Mods_128x64/frame_34.png index 12f22abdb..d8fb6fa4a 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_34.png and b/assets/dolphin/external/L1_Mods_128x64/frame_34.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_35.png b/assets/dolphin/external/L1_Mods_128x64/frame_35.png index 9fca976de..0ac3ecf94 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_35.png and b/assets/dolphin/external/L1_Mods_128x64/frame_35.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_36.png b/assets/dolphin/external/L1_Mods_128x64/frame_36.png index 4b2ab5863..b856989ed 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_36.png and b/assets/dolphin/external/L1_Mods_128x64/frame_36.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_37.png b/assets/dolphin/external/L1_Mods_128x64/frame_37.png index 69c709adc..753deefee 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_37.png and b/assets/dolphin/external/L1_Mods_128x64/frame_37.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_38.png b/assets/dolphin/external/L1_Mods_128x64/frame_38.png index 13caae7ca..61e2dbac5 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_38.png and b/assets/dolphin/external/L1_Mods_128x64/frame_38.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_39.png b/assets/dolphin/external/L1_Mods_128x64/frame_39.png index b1d1e8bfe..4952ff527 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_39.png and b/assets/dolphin/external/L1_Mods_128x64/frame_39.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_4.png b/assets/dolphin/external/L1_Mods_128x64/frame_4.png index 45e47de12..2260541b4 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_4.png and b/assets/dolphin/external/L1_Mods_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_40.png b/assets/dolphin/external/L1_Mods_128x64/frame_40.png index acf000827..6bce5ee40 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_40.png and b/assets/dolphin/external/L1_Mods_128x64/frame_40.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_41.png b/assets/dolphin/external/L1_Mods_128x64/frame_41.png index b6c6fbb19..010ba0efa 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_41.png and b/assets/dolphin/external/L1_Mods_128x64/frame_41.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_42.png b/assets/dolphin/external/L1_Mods_128x64/frame_42.png index 7d2dcda5d..1197601e3 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_42.png and b/assets/dolphin/external/L1_Mods_128x64/frame_42.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_43.png b/assets/dolphin/external/L1_Mods_128x64/frame_43.png index 461270ba4..c7ac5c446 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_43.png and b/assets/dolphin/external/L1_Mods_128x64/frame_43.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_44.png b/assets/dolphin/external/L1_Mods_128x64/frame_44.png index b018a94c1..a10c37020 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_44.png and b/assets/dolphin/external/L1_Mods_128x64/frame_44.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_45.png b/assets/dolphin/external/L1_Mods_128x64/frame_45.png index fa2b303cc..47cce6619 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_45.png and b/assets/dolphin/external/L1_Mods_128x64/frame_45.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_46.png b/assets/dolphin/external/L1_Mods_128x64/frame_46.png index ed38122f5..f9e3ec5f4 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_46.png and b/assets/dolphin/external/L1_Mods_128x64/frame_46.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_47.png b/assets/dolphin/external/L1_Mods_128x64/frame_47.png index 38610bb4b..2e87539b4 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_47.png and b/assets/dolphin/external/L1_Mods_128x64/frame_47.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_48.png b/assets/dolphin/external/L1_Mods_128x64/frame_48.png index 7f6b4b29a..ad22352cb 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_48.png and b/assets/dolphin/external/L1_Mods_128x64/frame_48.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_5.png b/assets/dolphin/external/L1_Mods_128x64/frame_5.png index 7c293b485..0162f0da0 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_5.png and b/assets/dolphin/external/L1_Mods_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_6.png b/assets/dolphin/external/L1_Mods_128x64/frame_6.png index e72e7a30e..5a3b35046 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_6.png and b/assets/dolphin/external/L1_Mods_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_7.png b/assets/dolphin/external/L1_Mods_128x64/frame_7.png index 5c840d6f6..344f02fd1 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_7.png and b/assets/dolphin/external/L1_Mods_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_8.png b/assets/dolphin/external/L1_Mods_128x64/frame_8.png index f689f190c..0d029c93e 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_8.png and b/assets/dolphin/external/L1_Mods_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L1_Mods_128x64/frame_9.png b/assets/dolphin/external/L1_Mods_128x64/frame_9.png index 628394e57..713c4449e 100644 Binary files a/assets/dolphin/external/L1_Mods_128x64/frame_9.png and b/assets/dolphin/external/L1_Mods_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_0.png b/assets/dolphin/external/L1_My_dude_128x64/frame_0.png index bf07d03d6..4706786b7 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_0.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_1.png b/assets/dolphin/external/L1_My_dude_128x64/frame_1.png index 4402654c7..e81a3eae7 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_1.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_10.png b/assets/dolphin/external/L1_My_dude_128x64/frame_10.png index 10dabe4c5..0bc0462a7 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_10.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_11.png b/assets/dolphin/external/L1_My_dude_128x64/frame_11.png index 878712fe2..0b2a3e97b 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_11.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_11.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_12.png b/assets/dolphin/external/L1_My_dude_128x64/frame_12.png index 19fc985ac..d01bb39f5 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_12.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_12.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_13.png b/assets/dolphin/external/L1_My_dude_128x64/frame_13.png index 39172f26f..2f4cb5987 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_13.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_13.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_14.png b/assets/dolphin/external/L1_My_dude_128x64/frame_14.png index 9a3a84fff..c8b3def2a 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_14.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_14.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_15.png b/assets/dolphin/external/L1_My_dude_128x64/frame_15.png index 2472c2729..e545002bd 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_15.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_15.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_16.png b/assets/dolphin/external/L1_My_dude_128x64/frame_16.png index 4940aef67..8e906e4f4 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_16.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_16.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_17.png b/assets/dolphin/external/L1_My_dude_128x64/frame_17.png index fd910ce5a..56765ecb8 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_17.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_17.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_18.png b/assets/dolphin/external/L1_My_dude_128x64/frame_18.png index ed33f18a7..1deb8d82f 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_18.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_18.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_19.png b/assets/dolphin/external/L1_My_dude_128x64/frame_19.png index d602a01d5..ac288ba8a 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_19.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_19.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_2.png b/assets/dolphin/external/L1_My_dude_128x64/frame_2.png index b680b4ae0..007419dec 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_2.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_20.png b/assets/dolphin/external/L1_My_dude_128x64/frame_20.png index 2dfa931f2..cd9d06d2c 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_20.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_20.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_21.png b/assets/dolphin/external/L1_My_dude_128x64/frame_21.png index 272064d90..20a22b06e 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_21.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_21.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_22.png b/assets/dolphin/external/L1_My_dude_128x64/frame_22.png index 35d0149ad..0f3dbd46a 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_22.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_22.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_23.png b/assets/dolphin/external/L1_My_dude_128x64/frame_23.png index 83d02ef88..f47a3d597 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_23.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_23.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_24.png b/assets/dolphin/external/L1_My_dude_128x64/frame_24.png index f3ac44178..6ca6b4017 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_24.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_24.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_25.png b/assets/dolphin/external/L1_My_dude_128x64/frame_25.png index 832c2bde9..1c768c19a 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_25.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_25.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_26.png b/assets/dolphin/external/L1_My_dude_128x64/frame_26.png index 3836a3b01..06cd12d2c 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_26.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_26.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_27.png b/assets/dolphin/external/L1_My_dude_128x64/frame_27.png index ff621b73e..17a20f544 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_27.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_27.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_28.png b/assets/dolphin/external/L1_My_dude_128x64/frame_28.png index 94e05f94d..2f9f7106e 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_28.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_28.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_29.png b/assets/dolphin/external/L1_My_dude_128x64/frame_29.png index 1ce384b16..dffa2d7c5 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_29.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_29.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_3.png b/assets/dolphin/external/L1_My_dude_128x64/frame_3.png index a5056eb4b..314efc632 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_3.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_30.png b/assets/dolphin/external/L1_My_dude_128x64/frame_30.png index 8d42b8b48..52b8d35f0 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_30.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_30.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_31.png b/assets/dolphin/external/L1_My_dude_128x64/frame_31.png index ac926d7be..6c282c0af 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_31.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_31.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_32.png b/assets/dolphin/external/L1_My_dude_128x64/frame_32.png index 35070eb6b..1d1f631b0 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_32.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_32.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_33.png b/assets/dolphin/external/L1_My_dude_128x64/frame_33.png index a6c973f67..4376fe29f 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_33.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_33.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_34.png b/assets/dolphin/external/L1_My_dude_128x64/frame_34.png index 3f9407f38..d431b9090 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_34.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_34.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_35.png b/assets/dolphin/external/L1_My_dude_128x64/frame_35.png index 6059e00d5..e4ce5da4d 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_35.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_35.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_36.png b/assets/dolphin/external/L1_My_dude_128x64/frame_36.png index d2cd0c970..f9d8b6ebf 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_36.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_36.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_37.png b/assets/dolphin/external/L1_My_dude_128x64/frame_37.png index e60fd08de..18080af54 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_37.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_37.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_38.png b/assets/dolphin/external/L1_My_dude_128x64/frame_38.png index 70e56b168..b9271ca8d 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_38.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_38.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_39.png b/assets/dolphin/external/L1_My_dude_128x64/frame_39.png index 450b4d4f6..cc3b2c5e3 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_39.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_39.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_4.png b/assets/dolphin/external/L1_My_dude_128x64/frame_4.png index 2d9f4e963..4b7361a42 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_4.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_40.png b/assets/dolphin/external/L1_My_dude_128x64/frame_40.png index 369200345..ac0c42834 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_40.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_40.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_41.png b/assets/dolphin/external/L1_My_dude_128x64/frame_41.png index e0f882268..18fa9c0a1 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_41.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_41.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_42.png b/assets/dolphin/external/L1_My_dude_128x64/frame_42.png index a8a23536a..86a79df74 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_42.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_42.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_43.png b/assets/dolphin/external/L1_My_dude_128x64/frame_43.png index 6a402b350..d71c76f05 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_43.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_43.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_44.png b/assets/dolphin/external/L1_My_dude_128x64/frame_44.png index f425bcc17..9e9ed92f5 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_44.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_44.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_45.png b/assets/dolphin/external/L1_My_dude_128x64/frame_45.png index b0ea1a7e7..70da80e9b 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_45.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_45.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_46.png b/assets/dolphin/external/L1_My_dude_128x64/frame_46.png index 3113ff2e6..ef0cd69bd 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_46.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_46.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_47.png b/assets/dolphin/external/L1_My_dude_128x64/frame_47.png index 87403c610..d4e5ccfe2 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_47.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_47.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_48.png b/assets/dolphin/external/L1_My_dude_128x64/frame_48.png index 2734e2fcd..30848e939 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_48.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_48.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_5.png b/assets/dolphin/external/L1_My_dude_128x64/frame_5.png index df2255949..94ee5d154 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_5.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_6.png b/assets/dolphin/external/L1_My_dude_128x64/frame_6.png index 4c00552ea..34233f5bb 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_6.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_7.png b/assets/dolphin/external/L1_My_dude_128x64/frame_7.png index 970380940..f21b4f406 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_7.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_8.png b/assets/dolphin/external/L1_My_dude_128x64/frame_8.png index 86e41e913..1f574da94 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_8.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L1_My_dude_128x64/frame_9.png b/assets/dolphin/external/L1_My_dude_128x64/frame_9.png index 4334eefaf..5e75e2dff 100644 Binary files a/assets/dolphin/external/L1_My_dude_128x64/frame_9.png and b/assets/dolphin/external/L1_My_dude_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L1_Painting_128x64/frame_0.png b/assets/dolphin/external/L1_Painting_128x64/frame_0.png index b2f9bc775..154a85ffb 100644 Binary files a/assets/dolphin/external/L1_Painting_128x64/frame_0.png and b/assets/dolphin/external/L1_Painting_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L1_Painting_128x64/frame_1.png b/assets/dolphin/external/L1_Painting_128x64/frame_1.png index 02ac533ce..e52dfd628 100644 Binary files a/assets/dolphin/external/L1_Painting_128x64/frame_1.png and b/assets/dolphin/external/L1_Painting_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L1_Painting_128x64/frame_10.png b/assets/dolphin/external/L1_Painting_128x64/frame_10.png index ae3148c32..39389a64f 100644 Binary files a/assets/dolphin/external/L1_Painting_128x64/frame_10.png and b/assets/dolphin/external/L1_Painting_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L1_Painting_128x64/frame_11.png b/assets/dolphin/external/L1_Painting_128x64/frame_11.png index 89d003d07..e6ea79c37 100644 Binary files a/assets/dolphin/external/L1_Painting_128x64/frame_11.png and b/assets/dolphin/external/L1_Painting_128x64/frame_11.png differ diff --git a/assets/dolphin/external/L1_Painting_128x64/frame_2.png b/assets/dolphin/external/L1_Painting_128x64/frame_2.png index 8bfe6b33c..302d5be61 100644 Binary files a/assets/dolphin/external/L1_Painting_128x64/frame_2.png and b/assets/dolphin/external/L1_Painting_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L1_Painting_128x64/frame_3.png b/assets/dolphin/external/L1_Painting_128x64/frame_3.png index 1c6fc2144..6227c4089 100644 Binary files a/assets/dolphin/external/L1_Painting_128x64/frame_3.png and b/assets/dolphin/external/L1_Painting_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L1_Painting_128x64/frame_4.png b/assets/dolphin/external/L1_Painting_128x64/frame_4.png index d39cddea1..8d76d9d0d 100644 Binary files a/assets/dolphin/external/L1_Painting_128x64/frame_4.png and b/assets/dolphin/external/L1_Painting_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L1_Painting_128x64/frame_5.png b/assets/dolphin/external/L1_Painting_128x64/frame_5.png index 4f21a268a..5e562ce05 100644 Binary files a/assets/dolphin/external/L1_Painting_128x64/frame_5.png and b/assets/dolphin/external/L1_Painting_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L1_Painting_128x64/frame_6.png b/assets/dolphin/external/L1_Painting_128x64/frame_6.png index 3f492eab5..9284cbef9 100644 Binary files a/assets/dolphin/external/L1_Painting_128x64/frame_6.png and b/assets/dolphin/external/L1_Painting_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L1_Painting_128x64/frame_7.png b/assets/dolphin/external/L1_Painting_128x64/frame_7.png index 336cffcb4..8212e629c 100644 Binary files a/assets/dolphin/external/L1_Painting_128x64/frame_7.png and b/assets/dolphin/external/L1_Painting_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L1_Painting_128x64/frame_8.png b/assets/dolphin/external/L1_Painting_128x64/frame_8.png index a44a7315d..f13bf906c 100644 Binary files a/assets/dolphin/external/L1_Painting_128x64/frame_8.png and b/assets/dolphin/external/L1_Painting_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L1_Painting_128x64/frame_9.png b/assets/dolphin/external/L1_Painting_128x64/frame_9.png index 7cd425291..65c881627 100644 Binary files a/assets/dolphin/external/L1_Painting_128x64/frame_9.png and b/assets/dolphin/external/L1_Painting_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L1_Read_books_128x64/frame_0.png b/assets/dolphin/external/L1_Read_books_128x64/frame_0.png index fbf265286..240fc15d5 100644 Binary files a/assets/dolphin/external/L1_Read_books_128x64/frame_0.png and b/assets/dolphin/external/L1_Read_books_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L1_Read_books_128x64/frame_1.png b/assets/dolphin/external/L1_Read_books_128x64/frame_1.png index be9c5dc15..7037de7ba 100644 Binary files a/assets/dolphin/external/L1_Read_books_128x64/frame_1.png and b/assets/dolphin/external/L1_Read_books_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L1_Read_books_128x64/frame_2.png b/assets/dolphin/external/L1_Read_books_128x64/frame_2.png index eb8075ecb..627edfaa4 100644 Binary files a/assets/dolphin/external/L1_Read_books_128x64/frame_2.png and b/assets/dolphin/external/L1_Read_books_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L1_Read_books_128x64/frame_3.png b/assets/dolphin/external/L1_Read_books_128x64/frame_3.png index 0f1fd5c52..babab2e47 100644 Binary files a/assets/dolphin/external/L1_Read_books_128x64/frame_3.png and b/assets/dolphin/external/L1_Read_books_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L1_Read_books_128x64/frame_4.png b/assets/dolphin/external/L1_Read_books_128x64/frame_4.png index dd2d918af..1a3f38e48 100644 Binary files a/assets/dolphin/external/L1_Read_books_128x64/frame_4.png and b/assets/dolphin/external/L1_Read_books_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L1_Read_books_128x64/frame_5.png b/assets/dolphin/external/L1_Read_books_128x64/frame_5.png index bfcc7bcd2..5f864b0d8 100644 Binary files a/assets/dolphin/external/L1_Read_books_128x64/frame_5.png and b/assets/dolphin/external/L1_Read_books_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L1_Read_books_128x64/frame_6.png b/assets/dolphin/external/L1_Read_books_128x64/frame_6.png index eabe9def3..aded14709 100644 Binary files a/assets/dolphin/external/L1_Read_books_128x64/frame_6.png and b/assets/dolphin/external/L1_Read_books_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L1_Read_books_128x64/frame_7.png b/assets/dolphin/external/L1_Read_books_128x64/frame_7.png index 3ff0aee0c..9540789e7 100644 Binary files a/assets/dolphin/external/L1_Read_books_128x64/frame_7.png and b/assets/dolphin/external/L1_Read_books_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L1_Read_books_128x64/frame_8.png b/assets/dolphin/external/L1_Read_books_128x64/frame_8.png index ce663f75f..2d87b962c 100644 Binary files a/assets/dolphin/external/L1_Read_books_128x64/frame_8.png and b/assets/dolphin/external/L1_Read_books_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L1_Recording_128x51/frame_0.png b/assets/dolphin/external/L1_Recording_128x51/frame_0.png index ed0f030b8..e1361d632 100644 Binary files a/assets/dolphin/external/L1_Recording_128x51/frame_0.png and b/assets/dolphin/external/L1_Recording_128x51/frame_0.png differ diff --git a/assets/dolphin/external/L1_Recording_128x51/frame_1.png b/assets/dolphin/external/L1_Recording_128x51/frame_1.png index f3b3f8a97..0b549c648 100644 Binary files a/assets/dolphin/external/L1_Recording_128x51/frame_1.png and b/assets/dolphin/external/L1_Recording_128x51/frame_1.png differ diff --git a/assets/dolphin/external/L1_Recording_128x51/frame_10.png b/assets/dolphin/external/L1_Recording_128x51/frame_10.png index a474c2147..e45ac86be 100644 Binary files a/assets/dolphin/external/L1_Recording_128x51/frame_10.png and b/assets/dolphin/external/L1_Recording_128x51/frame_10.png differ diff --git a/assets/dolphin/external/L1_Recording_128x51/frame_11.png b/assets/dolphin/external/L1_Recording_128x51/frame_11.png index cf654afb2..487e5ea4b 100644 Binary files a/assets/dolphin/external/L1_Recording_128x51/frame_11.png and b/assets/dolphin/external/L1_Recording_128x51/frame_11.png differ diff --git a/assets/dolphin/external/L1_Recording_128x51/frame_2.png b/assets/dolphin/external/L1_Recording_128x51/frame_2.png index f61e59efd..2901debc4 100644 Binary files a/assets/dolphin/external/L1_Recording_128x51/frame_2.png and b/assets/dolphin/external/L1_Recording_128x51/frame_2.png differ diff --git a/assets/dolphin/external/L1_Recording_128x51/frame_3.png b/assets/dolphin/external/L1_Recording_128x51/frame_3.png index 87e297b2a..c0e2388b7 100644 Binary files a/assets/dolphin/external/L1_Recording_128x51/frame_3.png and b/assets/dolphin/external/L1_Recording_128x51/frame_3.png differ diff --git a/assets/dolphin/external/L1_Recording_128x51/frame_4.png b/assets/dolphin/external/L1_Recording_128x51/frame_4.png index 62428a405..c81f90539 100644 Binary files a/assets/dolphin/external/L1_Recording_128x51/frame_4.png and b/assets/dolphin/external/L1_Recording_128x51/frame_4.png differ diff --git a/assets/dolphin/external/L1_Recording_128x51/frame_5.png b/assets/dolphin/external/L1_Recording_128x51/frame_5.png index 93953024a..22006b552 100644 Binary files a/assets/dolphin/external/L1_Recording_128x51/frame_5.png and b/assets/dolphin/external/L1_Recording_128x51/frame_5.png differ diff --git a/assets/dolphin/external/L1_Recording_128x51/frame_6.png b/assets/dolphin/external/L1_Recording_128x51/frame_6.png index 942f082b8..aecd99f1a 100644 Binary files a/assets/dolphin/external/L1_Recording_128x51/frame_6.png and b/assets/dolphin/external/L1_Recording_128x51/frame_6.png differ diff --git a/assets/dolphin/external/L1_Recording_128x51/frame_7.png b/assets/dolphin/external/L1_Recording_128x51/frame_7.png index 84ce00d23..c7b305372 100644 Binary files a/assets/dolphin/external/L1_Recording_128x51/frame_7.png and b/assets/dolphin/external/L1_Recording_128x51/frame_7.png differ diff --git a/assets/dolphin/external/L1_Recording_128x51/frame_8.png b/assets/dolphin/external/L1_Recording_128x51/frame_8.png index f6f45552b..6fac0a661 100644 Binary files a/assets/dolphin/external/L1_Recording_128x51/frame_8.png and b/assets/dolphin/external/L1_Recording_128x51/frame_8.png differ diff --git a/assets/dolphin/external/L1_Recording_128x51/frame_9.png b/assets/dolphin/external/L1_Recording_128x51/frame_9.png index dcd3aa0b9..448266cd2 100644 Binary files a/assets/dolphin/external/L1_Recording_128x51/frame_9.png and b/assets/dolphin/external/L1_Recording_128x51/frame_9.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_0.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_0.png index 71e85fe8f..36e5de4c9 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_0.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_1.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_1.png index 31ab932b9..f487ffdb7 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_1.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_10.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_10.png index da8f13680..15a5d5379 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_10.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_11.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_11.png index 9c87945b5..e66b473f7 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_11.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_11.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_12.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_12.png index 52ecb01c1..3f11cc90e 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_12.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_12.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_13.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_13.png index 165b0635a..41abfcc61 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_13.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_13.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_14.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_14.png index 3ad1f1c2d..93b0dfd43 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_14.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_14.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_15.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_15.png index dace07e83..64780d71b 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_15.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_15.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_16.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_16.png index 2f2321888..6372d943a 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_16.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_16.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_17.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_17.png index ea67b3645..a61ef2ab8 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_17.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_17.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_18.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_18.png index e4526da94..52c250fe5 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_18.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_18.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_19.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_19.png index b6e3de1ac..39ce84076 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_19.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_19.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_2.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_2.png index a76a00022..4ec651e93 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_2.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_20.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_20.png index b33656867..4cfcf5282 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_20.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_20.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_21.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_21.png index 6048810f0..0b04296e3 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_21.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_21.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_22.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_22.png index 657788f2b..5b8635a51 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_22.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_22.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_23.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_23.png index 852e778bf..9d7af682b 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_23.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_23.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_24.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_24.png index d8497ee6a..324311a33 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_24.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_24.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_25.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_25.png index d647aae1b..eaea2d87e 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_25.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_25.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_26.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_26.png index 83bc94316..75eae29c7 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_26.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_26.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_27.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_27.png index 9f4e0ce7b..2c0de95be 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_27.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_27.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_28.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_28.png index 894394ab3..f6a0c6e69 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_28.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_28.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_29.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_29.png index 63babe793..de18082e5 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_29.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_29.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_3.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_3.png index 630f42f2e..05bb61c0b 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_3.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_30.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_30.png index d062254d9..95def778c 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_30.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_30.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_31.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_31.png index 01ebecda7..5c12231bd 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_31.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_31.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_32.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_32.png index a66d6a42d..0524f50fa 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_32.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_32.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_33.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_33.png index e80a66743..52af71e8b 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_33.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_33.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_34.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_34.png index cea25e209..4cebede66 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_34.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_34.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_35.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_35.png index 56e05f8f9..8558d74f7 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_35.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_35.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_36.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_36.png index 8e72a7c39..3f13b3c16 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_36.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_36.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_37.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_37.png index 9f20081e5..f4fc155be 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_37.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_37.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_38.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_38.png index 39e620954..2c2968c9f 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_38.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_38.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_39.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_39.png index febe3bf0b..2326527f3 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_39.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_39.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_4.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_4.png index 7377c6080..711f8f7a9 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_4.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_40.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_40.png index 2540fd383..a0aca8d5d 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_40.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_40.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_41.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_41.png index 63106c87a..1d8c4257d 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_41.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_41.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_42.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_42.png index 21038b47a..42d9a0d02 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_42.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_42.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_43.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_43.png index 09309607c..8d1a63ce4 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_43.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_43.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_44.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_44.png index 2d4b51225..9d5904cfd 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_44.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_44.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_45.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_45.png index 0501b735a..b858fd89a 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_45.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_45.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_46.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_46.png index 1edca6aed..63af06f99 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_46.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_46.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_47.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_47.png index 467fe93e0..98f147ce9 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_47.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_47.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_48.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_48.png index fb2c54aa9..0ba0ccf90 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_48.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_48.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_49.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_49.png index 74cd345fa..3b89c00a5 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_49.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_49.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_5.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_5.png index 70ed4f559..2da816601 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_5.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_50.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_50.png index 32221d347..94d6d3087 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_50.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_50.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_51.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_51.png index a81457ddc..626692b0b 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_51.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_51.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_52.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_52.png index 3fc75d870..261c424e2 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_52.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_52.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_53.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_53.png index 2e4528c73..fd893efb9 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_53.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_53.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_54.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_54.png index abab31964..08f645570 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_54.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_54.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_55.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_55.png index dfa5312f5..8c6d81c0f 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_55.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_55.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_56.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_56.png index 59a194b14..301d61d37 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_56.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_56.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_57.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_57.png index d142a38db..e4893fd0c 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_57.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_57.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_58.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_58.png index d6a66da8b..52f0ed99f 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_58.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_58.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_59.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_59.png index 4ab56d31e..95542d4a2 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_59.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_59.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_6.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_6.png index 7d4f0684e..a28e22e4f 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_6.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_60.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_60.png index 0cb8722e3..5b311fbe6 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_60.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_60.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_61.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_61.png index 7da7d1adf..ef4d9db7e 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_61.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_61.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_62.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_62.png index 1bfd8d303..c6d519fb4 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_62.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_62.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_7.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_7.png index 0ff0f5a3f..4e363367e 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_7.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_8.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_8.png index 698776737..53a4652de 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_8.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L1_Sad_song_128x64/frame_9.png b/assets/dolphin/external/L1_Sad_song_128x64/frame_9.png index 606272119..24d0fc41c 100644 Binary files a/assets/dolphin/external/L1_Sad_song_128x64/frame_9.png and b/assets/dolphin/external/L1_Sad_song_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_0.png b/assets/dolphin/external/L1_Senpai_128x64/frame_0.png index ed37723ac..7390c84e8 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_0.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_1.png b/assets/dolphin/external/L1_Senpai_128x64/frame_1.png index ad708ee43..bf14f9319 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_1.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_10.png b/assets/dolphin/external/L1_Senpai_128x64/frame_10.png index e385018bf..db0766f66 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_10.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_11.png b/assets/dolphin/external/L1_Senpai_128x64/frame_11.png index 553a979be..92ad6d095 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_11.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_11.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_12.png b/assets/dolphin/external/L1_Senpai_128x64/frame_12.png index 9f8ca7e9b..02b5c78ff 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_12.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_12.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_13.png b/assets/dolphin/external/L1_Senpai_128x64/frame_13.png index a996443fe..b8537f4bf 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_13.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_13.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_14.png b/assets/dolphin/external/L1_Senpai_128x64/frame_14.png index 628d58b93..3e51ddea0 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_14.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_14.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_15.png b/assets/dolphin/external/L1_Senpai_128x64/frame_15.png index cc8431ade..a86e54c3f 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_15.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_15.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_16.png b/assets/dolphin/external/L1_Senpai_128x64/frame_16.png index 3ec372798..230ae8d89 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_16.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_16.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_17.png b/assets/dolphin/external/L1_Senpai_128x64/frame_17.png index 11b247eca..e92acac9c 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_17.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_17.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_18.png b/assets/dolphin/external/L1_Senpai_128x64/frame_18.png index bb1504133..47b716ef7 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_18.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_18.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_19.png b/assets/dolphin/external/L1_Senpai_128x64/frame_19.png index f953c8ef1..9e084150a 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_19.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_19.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_2.png b/assets/dolphin/external/L1_Senpai_128x64/frame_2.png index 36c3b4abe..337bc2dd3 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_2.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_20.png b/assets/dolphin/external/L1_Senpai_128x64/frame_20.png index d683b9f62..2caed65c6 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_20.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_20.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_21.png b/assets/dolphin/external/L1_Senpai_128x64/frame_21.png index 66cbfe1d8..4a7cfb5f8 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_21.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_21.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_22.png b/assets/dolphin/external/L1_Senpai_128x64/frame_22.png index dd241d24a..21a721994 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_22.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_22.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_23.png b/assets/dolphin/external/L1_Senpai_128x64/frame_23.png index 944bdc74e..fd5d53b27 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_23.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_23.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_24.png b/assets/dolphin/external/L1_Senpai_128x64/frame_24.png index 3f445593a..7e7d008bc 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_24.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_24.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_25.png b/assets/dolphin/external/L1_Senpai_128x64/frame_25.png index ea7823bd7..5f1ea16ef 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_25.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_25.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_26.png b/assets/dolphin/external/L1_Senpai_128x64/frame_26.png index 0b378fbcc..e753eadf9 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_26.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_26.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_27.png b/assets/dolphin/external/L1_Senpai_128x64/frame_27.png index 66eec542a..e815ead02 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_27.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_27.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_28.png b/assets/dolphin/external/L1_Senpai_128x64/frame_28.png index 1e232ba91..24e579be1 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_28.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_28.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_29.png b/assets/dolphin/external/L1_Senpai_128x64/frame_29.png index e2767bd65..8edea2b08 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_29.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_29.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_3.png b/assets/dolphin/external/L1_Senpai_128x64/frame_3.png index 9a3c13f66..c610eddcf 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_3.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_30.png b/assets/dolphin/external/L1_Senpai_128x64/frame_30.png index 36d1212be..00edcb7f2 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_30.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_30.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_31.png b/assets/dolphin/external/L1_Senpai_128x64/frame_31.png index 037bdc8ed..3d2d5d6f7 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_31.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_31.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_32.png b/assets/dolphin/external/L1_Senpai_128x64/frame_32.png index 91ce18869..819ae205e 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_32.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_32.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_33.png b/assets/dolphin/external/L1_Senpai_128x64/frame_33.png index e3e7799db..0e43a4987 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_33.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_33.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_34.png b/assets/dolphin/external/L1_Senpai_128x64/frame_34.png index a28aac4e0..53c2ce75c 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_34.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_34.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_35.png b/assets/dolphin/external/L1_Senpai_128x64/frame_35.png index 04f8c1a7f..d6b2f16d8 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_35.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_35.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_4.png b/assets/dolphin/external/L1_Senpai_128x64/frame_4.png index d065b77a1..966e60681 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_4.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_5.png b/assets/dolphin/external/L1_Senpai_128x64/frame_5.png index 7a111afd0..838f46432 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_5.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_6.png b/assets/dolphin/external/L1_Senpai_128x64/frame_6.png index 318c7eca0..f5e811188 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_6.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_7.png b/assets/dolphin/external/L1_Senpai_128x64/frame_7.png index b56b995dc..aabcd529e 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_7.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_8.png b/assets/dolphin/external/L1_Senpai_128x64/frame_8.png index 6c4b87570..4c18a154c 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_8.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L1_Senpai_128x64/frame_9.png b/assets/dolphin/external/L1_Senpai_128x64/frame_9.png index 00b02330e..577207e5c 100644 Binary files a/assets/dolphin/external/L1_Senpai_128x64/frame_9.png and b/assets/dolphin/external/L1_Senpai_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L1_Sleep_128x64/frame_0.png b/assets/dolphin/external/L1_Sleep_128x64/frame_0.png index 851f1d01d..69d0d671e 100644 Binary files a/assets/dolphin/external/L1_Sleep_128x64/frame_0.png and b/assets/dolphin/external/L1_Sleep_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L1_Sleep_128x64/frame_1.png b/assets/dolphin/external/L1_Sleep_128x64/frame_1.png index 89b40b36f..c29188dc4 100644 Binary files a/assets/dolphin/external/L1_Sleep_128x64/frame_1.png and b/assets/dolphin/external/L1_Sleep_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L1_Sleep_128x64/frame_2.png b/assets/dolphin/external/L1_Sleep_128x64/frame_2.png index 70ad96dde..20f3709d2 100644 Binary files a/assets/dolphin/external/L1_Sleep_128x64/frame_2.png and b/assets/dolphin/external/L1_Sleep_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L1_Sleep_128x64/frame_3.png b/assets/dolphin/external/L1_Sleep_128x64/frame_3.png index 03b2f529a..ba0ce672f 100644 Binary files a/assets/dolphin/external/L1_Sleep_128x64/frame_3.png and b/assets/dolphin/external/L1_Sleep_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L1_Waves_128x50/frame_0.png b/assets/dolphin/external/L1_Waves_128x50/frame_0.png index adad4f413..aabae9cae 100644 Binary files a/assets/dolphin/external/L1_Waves_128x50/frame_0.png and b/assets/dolphin/external/L1_Waves_128x50/frame_0.png differ diff --git a/assets/dolphin/external/L1_Waves_128x50/frame_1.png b/assets/dolphin/external/L1_Waves_128x50/frame_1.png index 462824be2..4adada4f3 100644 Binary files a/assets/dolphin/external/L1_Waves_128x50/frame_1.png and b/assets/dolphin/external/L1_Waves_128x50/frame_1.png differ diff --git a/assets/dolphin/external/L1_Waves_128x50/frame_2.png b/assets/dolphin/external/L1_Waves_128x50/frame_2.png index a5a728849..84b2453ba 100644 Binary files a/assets/dolphin/external/L1_Waves_128x50/frame_2.png and b/assets/dolphin/external/L1_Waves_128x50/frame_2.png differ diff --git a/assets/dolphin/external/L1_Waves_128x50/frame_3.png b/assets/dolphin/external/L1_Waves_128x50/frame_3.png index 4f454a743..cccfabec1 100644 Binary files a/assets/dolphin/external/L1_Waves_128x50/frame_3.png and b/assets/dolphin/external/L1_Waves_128x50/frame_3.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_0.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_0.png index e34e79690..7f1c84c26 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_0.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_1.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_1.png index cc6032ad3..4b8a3e252 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_1.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_10.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_10.png index a28a21225..ee9424ee5 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_10.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_11.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_11.png index 3d94c8910..7400b90eb 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_11.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_11.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_12.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_12.png index 74e0b962c..c8779d6b4 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_12.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_12.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_13.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_13.png index 3269169e4..87b19aa30 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_13.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_13.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_14.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_14.png index 42f844d3d..7209b545f 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_14.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_14.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_15.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_15.png index 861b16c65..b7725b350 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_15.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_15.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_16.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_16.png index 2f4b3b839..82b1feae0 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_16.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_16.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_17.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_17.png index 7cba6f795..b92a8c2d1 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_17.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_17.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_18.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_18.png index 0b8fe650e..3114dc599 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_18.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_18.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_19.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_19.png index e3c50e308..9c79cd16b 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_19.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_19.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_2.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_2.png index c259b5a5a..df558a704 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_2.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_20.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_20.png index ae6e76532..96a1c159b 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_20.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_20.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_21.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_21.png index e97affd7e..e832983f3 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_21.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_21.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_22.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_22.png index b5c615924..fcb5f4430 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_22.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_22.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_23.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_23.png index ef4876275..df827d72a 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_23.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_23.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_24.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_24.png index 4dfe3a029..688fb69af 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_24.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_24.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_25.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_25.png index 1f9d6ac54..9ee574396 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_25.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_25.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_26.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_26.png index 379e29b50..2c3fe6987 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_26.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_26.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_27.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_27.png index 16210a792..3253a415f 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_27.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_27.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_28.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_28.png index 7685c3bc3..2152f449e 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_28.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_28.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_29.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_29.png index 5f114a479..2286f7936 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_29.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_29.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_3.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_3.png index 3f5c523ac..65b126e6c 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_3.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_30.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_30.png index 645ffa669..d67714a89 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_30.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_30.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_31.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_31.png index a086ba60c..c2371bc4d 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_31.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_31.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_32.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_32.png index 4fdc011d1..43c995266 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_32.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_32.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_33.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_33.png index f9789d8b8..41ff0cced 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_33.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_33.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_34.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_34.png index e13f825fa..05ae0f146 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_34.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_34.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_35.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_35.png index 05f9639b9..61bd92f5f 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_35.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_35.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_36.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_36.png index a968fd015..6924299da 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_36.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_36.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_37.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_37.png index 8393e3ce8..72e71368d 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_37.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_37.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_38.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_38.png index 5e6c32499..2fe57d02d 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_38.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_38.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_39.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_39.png index 7ca97b4a7..8a7e28ebc 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_39.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_39.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_4.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_4.png index 11253dd62..87b339fcf 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_4.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_40.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_40.png index a1ac9f6f3..b471cf949 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_40.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_40.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_41.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_41.png index c33f03e92..7126105ef 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_41.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_41.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_42.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_42.png index dc51592c7..47c4fa671 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_42.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_42.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_43.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_43.png index ff83fe771..600c1d773 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_43.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_43.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_44.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_44.png index a5488fcb1..248b26b36 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_44.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_44.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_45.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_45.png index 86630e83a..e6da05bd1 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_45.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_45.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_46.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_46.png index a9147ae3c..d4988a819 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_46.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_46.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_47.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_47.png index f5b4529e4..3d631e3fe 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_47.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_47.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_48.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_48.png index 1f27241b7..247bf9844 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_48.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_48.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_49.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_49.png index f5656a750..a8a57bee6 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_49.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_49.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_5.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_5.png index 1545c0ee7..c9aaa31fa 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_5.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_50.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_50.png index 1ff2a8874..37cd3d893 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_50.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_50.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_51.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_51.png index 3608e114f..0ece627b4 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_51.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_51.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_52.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_52.png index f109b562b..aa5b3112c 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_52.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_52.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_53.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_53.png index a91b863c7..55574b441 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_53.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_53.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_54.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_54.png index 052196298..f909bd9f8 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_54.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_54.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_55.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_55.png index b8a8c6512..8711624f9 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_55.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_55.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_56.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_56.png index 44f5bf6d2..855375c08 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_56.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_56.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_57.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_57.png index f7c1e8023..753aa478e 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_57.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_57.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_58.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_58.png index 61efe9f45..846266c12 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_58.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_58.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_59.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_59.png index d0bfc886c..3d6b98dd2 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_59.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_59.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_6.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_6.png index f99662e70..119d8d346 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_6.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_60.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_60.png index 950152b73..89ce15403 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_60.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_60.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_61.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_61.png index 4e430d5c5..ed02b62a3 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_61.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_61.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_7.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_7.png index cf09a7842..bc407b6ff 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_7.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_8.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_8.png index d12fa6aba..7935a7755 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_8.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_9.png b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_9.png index ace68d642..99072fae9 100644 Binary files a/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_9.png and b/assets/dolphin/external/L2_Coding_in_the_shell_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_0.png b/assets/dolphin/external/L2_Dj_128x64/frame_0.png index 95f72f901..18a5e83f6 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_0.png and b/assets/dolphin/external/L2_Dj_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_1.png b/assets/dolphin/external/L2_Dj_128x64/frame_1.png index 32e13541d..efd0fcfaf 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_1.png and b/assets/dolphin/external/L2_Dj_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_10.png b/assets/dolphin/external/L2_Dj_128x64/frame_10.png index 3cce11f99..1e33265d6 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_10.png and b/assets/dolphin/external/L2_Dj_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_11.png b/assets/dolphin/external/L2_Dj_128x64/frame_11.png index eca4a1296..956d31d02 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_11.png and b/assets/dolphin/external/L2_Dj_128x64/frame_11.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_12.png b/assets/dolphin/external/L2_Dj_128x64/frame_12.png index 5f92e47fd..a99135d7b 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_12.png and b/assets/dolphin/external/L2_Dj_128x64/frame_12.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_13.png b/assets/dolphin/external/L2_Dj_128x64/frame_13.png index 1b1017ce2..3c5ff7b33 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_13.png and b/assets/dolphin/external/L2_Dj_128x64/frame_13.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_14.png b/assets/dolphin/external/L2_Dj_128x64/frame_14.png index 2cf408c97..79e28e916 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_14.png and b/assets/dolphin/external/L2_Dj_128x64/frame_14.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_15.png b/assets/dolphin/external/L2_Dj_128x64/frame_15.png index 9b796498c..69d233ab5 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_15.png and b/assets/dolphin/external/L2_Dj_128x64/frame_15.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_16.png b/assets/dolphin/external/L2_Dj_128x64/frame_16.png index c1545500c..a3766106a 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_16.png and b/assets/dolphin/external/L2_Dj_128x64/frame_16.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_17.png b/assets/dolphin/external/L2_Dj_128x64/frame_17.png index 80863f0b6..f606afb4b 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_17.png and b/assets/dolphin/external/L2_Dj_128x64/frame_17.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_18.png b/assets/dolphin/external/L2_Dj_128x64/frame_18.png index b4527bc83..392b12e25 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_18.png and b/assets/dolphin/external/L2_Dj_128x64/frame_18.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_19.png b/assets/dolphin/external/L2_Dj_128x64/frame_19.png index f1531da4e..fba62faae 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_19.png and b/assets/dolphin/external/L2_Dj_128x64/frame_19.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_2.png b/assets/dolphin/external/L2_Dj_128x64/frame_2.png index 391cfe1e1..85c5008be 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_2.png and b/assets/dolphin/external/L2_Dj_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_20.png b/assets/dolphin/external/L2_Dj_128x64/frame_20.png index f63904f29..c80e59d07 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_20.png and b/assets/dolphin/external/L2_Dj_128x64/frame_20.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_21.png b/assets/dolphin/external/L2_Dj_128x64/frame_21.png index 076448fa9..c3768e27b 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_21.png and b/assets/dolphin/external/L2_Dj_128x64/frame_21.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_22.png b/assets/dolphin/external/L2_Dj_128x64/frame_22.png index 8651f12f8..f5fe6855f 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_22.png and b/assets/dolphin/external/L2_Dj_128x64/frame_22.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_23.png b/assets/dolphin/external/L2_Dj_128x64/frame_23.png index d2d8e7e51..f404dafc3 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_23.png and b/assets/dolphin/external/L2_Dj_128x64/frame_23.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_24.png b/assets/dolphin/external/L2_Dj_128x64/frame_24.png index 6080e7aa3..b5c59f09c 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_24.png and b/assets/dolphin/external/L2_Dj_128x64/frame_24.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_25.png b/assets/dolphin/external/L2_Dj_128x64/frame_25.png index ec483addf..7495a0169 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_25.png and b/assets/dolphin/external/L2_Dj_128x64/frame_25.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_26.png b/assets/dolphin/external/L2_Dj_128x64/frame_26.png index 90fc3b138..601015748 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_26.png and b/assets/dolphin/external/L2_Dj_128x64/frame_26.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_27.png b/assets/dolphin/external/L2_Dj_128x64/frame_27.png index 39ddf46ab..48e08cf62 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_27.png and b/assets/dolphin/external/L2_Dj_128x64/frame_27.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_28.png b/assets/dolphin/external/L2_Dj_128x64/frame_28.png index f433c969c..a48aa0927 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_28.png and b/assets/dolphin/external/L2_Dj_128x64/frame_28.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_29.png b/assets/dolphin/external/L2_Dj_128x64/frame_29.png index 263ffe15a..1eae636a5 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_29.png and b/assets/dolphin/external/L2_Dj_128x64/frame_29.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_3.png b/assets/dolphin/external/L2_Dj_128x64/frame_3.png index 40d1314c9..4772c9217 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_3.png and b/assets/dolphin/external/L2_Dj_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_30.png b/assets/dolphin/external/L2_Dj_128x64/frame_30.png index 27c297e8d..631240dd0 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_30.png and b/assets/dolphin/external/L2_Dj_128x64/frame_30.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_31.png b/assets/dolphin/external/L2_Dj_128x64/frame_31.png index f2aefbfae..5dcfb355d 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_31.png and b/assets/dolphin/external/L2_Dj_128x64/frame_31.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_32.png b/assets/dolphin/external/L2_Dj_128x64/frame_32.png index 852c24233..9021fdca1 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_32.png and b/assets/dolphin/external/L2_Dj_128x64/frame_32.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_33.png b/assets/dolphin/external/L2_Dj_128x64/frame_33.png index 665ac5eaf..e5467bcfb 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_33.png and b/assets/dolphin/external/L2_Dj_128x64/frame_33.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_34.png b/assets/dolphin/external/L2_Dj_128x64/frame_34.png index 81f133ac5..e12c77c8a 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_34.png and b/assets/dolphin/external/L2_Dj_128x64/frame_34.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_35.png b/assets/dolphin/external/L2_Dj_128x64/frame_35.png index c828207d3..335f819d8 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_35.png and b/assets/dolphin/external/L2_Dj_128x64/frame_35.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_36.png b/assets/dolphin/external/L2_Dj_128x64/frame_36.png index fc923b402..39ce84076 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_36.png and b/assets/dolphin/external/L2_Dj_128x64/frame_36.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_4.png b/assets/dolphin/external/L2_Dj_128x64/frame_4.png index d372ff643..57a9dd944 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_4.png and b/assets/dolphin/external/L2_Dj_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_5.png b/assets/dolphin/external/L2_Dj_128x64/frame_5.png index 5b52f9517..c6f556fbf 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_5.png and b/assets/dolphin/external/L2_Dj_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_6.png b/assets/dolphin/external/L2_Dj_128x64/frame_6.png index 8a1e84a11..4a6f97d20 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_6.png and b/assets/dolphin/external/L2_Dj_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_7.png b/assets/dolphin/external/L2_Dj_128x64/frame_7.png index 1fddffaa4..cf626fdae 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_7.png and b/assets/dolphin/external/L2_Dj_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_8.png b/assets/dolphin/external/L2_Dj_128x64/frame_8.png index 14ef1aded..40facba15 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_8.png and b/assets/dolphin/external/L2_Dj_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L2_Dj_128x64/frame_9.png b/assets/dolphin/external/L2_Dj_128x64/frame_9.png index 05de5d5c6..12a3e590d 100644 Binary files a/assets/dolphin/external/L2_Dj_128x64/frame_9.png and b/assets/dolphin/external/L2_Dj_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_0.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_0.png index 43b26283e..37d3e1ecd 100644 Binary files a/assets/dolphin/external/L2_Furippa2_128x64/frame_0.png and b/assets/dolphin/external/L2_Furippa2_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_1.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_1.png index fecba5ad5..93ff00a84 100644 Binary files a/assets/dolphin/external/L2_Furippa2_128x64/frame_1.png and b/assets/dolphin/external/L2_Furippa2_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_10.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_10.png index 3c15e7ccf..d4ab0e356 100644 Binary files a/assets/dolphin/external/L2_Furippa2_128x64/frame_10.png and b/assets/dolphin/external/L2_Furippa2_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_11.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_11.png index 0f293281f..2d98d57ab 100644 Binary files a/assets/dolphin/external/L2_Furippa2_128x64/frame_11.png and b/assets/dolphin/external/L2_Furippa2_128x64/frame_11.png differ diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_12.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_12.png index 733962d3a..95d09d14b 100644 Binary files a/assets/dolphin/external/L2_Furippa2_128x64/frame_12.png and b/assets/dolphin/external/L2_Furippa2_128x64/frame_12.png differ diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_13.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_13.png index 4b7ed184f..c385a5ec4 100644 Binary files a/assets/dolphin/external/L2_Furippa2_128x64/frame_13.png and b/assets/dolphin/external/L2_Furippa2_128x64/frame_13.png differ diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_14.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_14.png index 1efff0f21..25b4ec565 100644 Binary files a/assets/dolphin/external/L2_Furippa2_128x64/frame_14.png and b/assets/dolphin/external/L2_Furippa2_128x64/frame_14.png differ diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_15.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_15.png index f2d76409d..2e7a73bce 100644 Binary files a/assets/dolphin/external/L2_Furippa2_128x64/frame_15.png and b/assets/dolphin/external/L2_Furippa2_128x64/frame_15.png differ diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_16.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_16.png index 125fb98fa..29e39b5c1 100644 Binary files a/assets/dolphin/external/L2_Furippa2_128x64/frame_16.png and b/assets/dolphin/external/L2_Furippa2_128x64/frame_16.png differ diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_17.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_17.png index 3a4a5f5a1..74bbee98e 100644 Binary files a/assets/dolphin/external/L2_Furippa2_128x64/frame_17.png and b/assets/dolphin/external/L2_Furippa2_128x64/frame_17.png differ diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_18.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_18.png index 13dd34859..2a9e4884d 100644 Binary files a/assets/dolphin/external/L2_Furippa2_128x64/frame_18.png and b/assets/dolphin/external/L2_Furippa2_128x64/frame_18.png differ diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_2.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_2.png index ef3150fd8..a24187a1b 100644 Binary files a/assets/dolphin/external/L2_Furippa2_128x64/frame_2.png and b/assets/dolphin/external/L2_Furippa2_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_3.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_3.png index 537ab523e..16f36b3c4 100644 Binary files a/assets/dolphin/external/L2_Furippa2_128x64/frame_3.png and b/assets/dolphin/external/L2_Furippa2_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_4.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_4.png index 873570126..eaa20698e 100644 Binary files a/assets/dolphin/external/L2_Furippa2_128x64/frame_4.png and b/assets/dolphin/external/L2_Furippa2_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_5.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_5.png index dbbeb1fe1..272d99f74 100644 Binary files a/assets/dolphin/external/L2_Furippa2_128x64/frame_5.png and b/assets/dolphin/external/L2_Furippa2_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_6.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_6.png index d18085027..705272470 100644 Binary files a/assets/dolphin/external/L2_Furippa2_128x64/frame_6.png and b/assets/dolphin/external/L2_Furippa2_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_7.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_7.png index 24f9333fe..37d3e1ecd 100644 Binary files a/assets/dolphin/external/L2_Furippa2_128x64/frame_7.png and b/assets/dolphin/external/L2_Furippa2_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_8.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_8.png index 30b97cdf5..e2433ea58 100644 Binary files a/assets/dolphin/external/L2_Furippa2_128x64/frame_8.png and b/assets/dolphin/external/L2_Furippa2_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L2_Furippa2_128x64/frame_9.png b/assets/dolphin/external/L2_Furippa2_128x64/frame_9.png index 7ceead056..be1afd958 100644 Binary files a/assets/dolphin/external/L2_Furippa2_128x64/frame_9.png and b/assets/dolphin/external/L2_Furippa2_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L2_Hacking_pc_128x64/frame_0.png b/assets/dolphin/external/L2_Hacking_pc_128x64/frame_0.png index d303aef08..4c91dd60b 100644 Binary files a/assets/dolphin/external/L2_Hacking_pc_128x64/frame_0.png and b/assets/dolphin/external/L2_Hacking_pc_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L2_Hacking_pc_128x64/frame_1.png b/assets/dolphin/external/L2_Hacking_pc_128x64/frame_1.png index 45aeb57b5..88849fc6b 100644 Binary files a/assets/dolphin/external/L2_Hacking_pc_128x64/frame_1.png and b/assets/dolphin/external/L2_Hacking_pc_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L2_Hacking_pc_128x64/frame_2.png b/assets/dolphin/external/L2_Hacking_pc_128x64/frame_2.png index a4508f14b..c2e190203 100644 Binary files a/assets/dolphin/external/L2_Hacking_pc_128x64/frame_2.png and b/assets/dolphin/external/L2_Hacking_pc_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L2_Hacking_pc_128x64/frame_3.png b/assets/dolphin/external/L2_Hacking_pc_128x64/frame_3.png index 350002167..cb5868d3f 100644 Binary files a/assets/dolphin/external/L2_Hacking_pc_128x64/frame_3.png and b/assets/dolphin/external/L2_Hacking_pc_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L2_Hacking_pc_128x64/frame_4.png b/assets/dolphin/external/L2_Hacking_pc_128x64/frame_4.png index 7addbf932..4b1f6a2aa 100644 Binary files a/assets/dolphin/external/L2_Hacking_pc_128x64/frame_4.png and b/assets/dolphin/external/L2_Hacking_pc_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_0.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_0.png index 8f29d5e2c..72cb959f0 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_0.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_1.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_1.png index f0756ff85..c973f205b 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_1.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_10.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_10.png index 03d95e2af..63a84b876 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_10.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_11.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_11.png index e4cf6ea8d..d7c9bce75 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_11.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_11.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_12.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_12.png index 6a7fe1bbb..488958005 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_12.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_12.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_13.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_13.png index 38171c273..74c418e36 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_13.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_13.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_14.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_14.png index 3eb9a1f63..50b8299e2 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_14.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_14.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_15.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_15.png index 624407488..8fb3240d7 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_15.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_15.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_16.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_16.png index f1306c2eb..b59622a7a 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_16.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_16.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_17.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_17.png index ed8d96bab..0f6ec25dd 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_17.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_17.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_18.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_18.png index e1df3ea49..45fd14e8e 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_18.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_18.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_19.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_19.png index d231a6561..3fdc37116 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_19.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_19.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_2.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_2.png index e2a864c76..1ba48033e 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_2.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_20.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_20.png index ddf9d4931..3b2292c9c 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_20.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_20.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_21.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_21.png index 0d407de64..904d2931f 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_21.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_21.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_22.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_22.png index f53ee0588..4e0235770 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_22.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_22.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_23.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_23.png index 83be68d84..18b103c40 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_23.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_23.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_24.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_24.png index ae61e5831..9cae5887c 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_24.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_24.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_25.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_25.png index a2608a0e1..c44defec7 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_25.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_25.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_26.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_26.png index 6602e3f57..8adee40b9 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_26.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_26.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_27.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_27.png index e82d7fcd1..b2521cee3 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_27.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_27.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_28.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_28.png index b16dda91d..5a5043ec5 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_28.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_28.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_29.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_29.png index cf91009bf..04bb206bc 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_29.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_29.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_3.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_3.png index 8bfdcabda..2054724f9 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_3.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_30.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_30.png index 080748498..44eec1f24 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_30.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_30.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_31.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_31.png index d4dfbce33..fa18ea345 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_31.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_31.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_32.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_32.png index c9c169f2e..13bc7f178 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_32.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_32.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_33.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_33.png index 0e939aa2d..6cb3f7c8b 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_33.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_33.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_34.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_34.png index d0f3a5383..0b0d3e5b5 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_34.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_34.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_35.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_35.png index 2e3a3c64f..ab2515fec 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_35.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_35.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_36.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_36.png index 4b34fe377..5dcd576da 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_36.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_36.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_37.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_37.png index 4935b75a6..a28bd7bd9 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_37.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_37.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_38.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_38.png index ccf5bdf09..ec5731155 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_38.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_38.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_39.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_39.png index d276c2123..dba19aeeb 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_39.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_39.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_4.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_4.png index 354a96b6c..84acd2bda 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_4.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_40.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_40.png index 873386a57..de8a4e7de 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_40.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_40.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_41.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_41.png index 529f6cdd4..f614ecd7d 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_41.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_41.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_42.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_42.png index 15168cd11..4bd13c36f 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_42.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_42.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_43.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_43.png index 16196a706..bc9c6dc21 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_43.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_43.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_44.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_44.png index 06fb27905..8e271e10a 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_44.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_44.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_45.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_45.png index 5a2221cb9..026064c5a 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_45.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_45.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_46.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_46.png index 7db77e935..eac19b8cd 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_46.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_46.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_47.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_47.png index a6d5407ad..4dbb14ce9 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_47.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_47.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_48.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_48.png index c6a17fda8..a6efbbdcf 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_48.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_48.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_49.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_49.png index 0e6845ac2..58993db8b 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_49.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_49.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_5.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_5.png index 45decf285..8654008fd 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_5.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_50.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_50.png index aa121a538..bcebe86cd 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_50.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_50.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_51.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_51.png index 38184aa75..4d732c392 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_51.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_51.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_52.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_52.png index 1259a591a..b2a87c442 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_52.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_52.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_6.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_6.png index cd916c404..713e66f22 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_6.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_7.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_7.png index d28bb5454..da9f67db4 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_7.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_8.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_8.png index 3621243f7..567ac58ac 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_8.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L2_Secret_door_128x64/frame_9.png b/assets/dolphin/external/L2_Secret_door_128x64/frame_9.png index 4d3d53716..979863437 100644 Binary files a/assets/dolphin/external/L2_Secret_door_128x64/frame_9.png and b/assets/dolphin/external/L2_Secret_door_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L2_Soldering_128x64/frame_0.png b/assets/dolphin/external/L2_Soldering_128x64/frame_0.png index bd20ae843..db6877259 100644 Binary files a/assets/dolphin/external/L2_Soldering_128x64/frame_0.png and b/assets/dolphin/external/L2_Soldering_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L2_Soldering_128x64/frame_1.png b/assets/dolphin/external/L2_Soldering_128x64/frame_1.png index b9453d056..0ff99dc58 100644 Binary files a/assets/dolphin/external/L2_Soldering_128x64/frame_1.png and b/assets/dolphin/external/L2_Soldering_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L2_Soldering_128x64/frame_10.png b/assets/dolphin/external/L2_Soldering_128x64/frame_10.png index 0519e851d..a6d4d2f25 100644 Binary files a/assets/dolphin/external/L2_Soldering_128x64/frame_10.png and b/assets/dolphin/external/L2_Soldering_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L2_Soldering_128x64/frame_2.png b/assets/dolphin/external/L2_Soldering_128x64/frame_2.png index 514241266..c0adab346 100644 Binary files a/assets/dolphin/external/L2_Soldering_128x64/frame_2.png and b/assets/dolphin/external/L2_Soldering_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L2_Soldering_128x64/frame_3.png b/assets/dolphin/external/L2_Soldering_128x64/frame_3.png index ba7ad99ae..27808c97b 100644 Binary files a/assets/dolphin/external/L2_Soldering_128x64/frame_3.png and b/assets/dolphin/external/L2_Soldering_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L2_Soldering_128x64/frame_4.png b/assets/dolphin/external/L2_Soldering_128x64/frame_4.png index ca696e4cf..324938865 100644 Binary files a/assets/dolphin/external/L2_Soldering_128x64/frame_4.png and b/assets/dolphin/external/L2_Soldering_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L2_Soldering_128x64/frame_5.png b/assets/dolphin/external/L2_Soldering_128x64/frame_5.png index aa7fc8ea0..43cb2a283 100644 Binary files a/assets/dolphin/external/L2_Soldering_128x64/frame_5.png and b/assets/dolphin/external/L2_Soldering_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L2_Soldering_128x64/frame_6.png b/assets/dolphin/external/L2_Soldering_128x64/frame_6.png index 85d1e30c9..29d09c423 100644 Binary files a/assets/dolphin/external/L2_Soldering_128x64/frame_6.png and b/assets/dolphin/external/L2_Soldering_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L2_Soldering_128x64/frame_7.png b/assets/dolphin/external/L2_Soldering_128x64/frame_7.png index 5ef6820f9..b2730636c 100644 Binary files a/assets/dolphin/external/L2_Soldering_128x64/frame_7.png and b/assets/dolphin/external/L2_Soldering_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L2_Soldering_128x64/frame_8.png b/assets/dolphin/external/L2_Soldering_128x64/frame_8.png index 12bed1b4a..f74c6415d 100644 Binary files a/assets/dolphin/external/L2_Soldering_128x64/frame_8.png and b/assets/dolphin/external/L2_Soldering_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L2_Soldering_128x64/frame_9.png b/assets/dolphin/external/L2_Soldering_128x64/frame_9.png index 46f9fd378..3f4d80b04 100644 Binary files a/assets/dolphin/external/L2_Soldering_128x64/frame_9.png and b/assets/dolphin/external/L2_Soldering_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_0.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_0.png index 912090032..f85f1df6b 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_0.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_1.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_1.png index 0b99a32ff..6b614c773 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_1.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_10.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_10.png index 9da72ac1d..3e7749145 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_10.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_11.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_11.png index 8d54da6c6..a90b2f6c0 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_11.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_11.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_12.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_12.png index 84046a46c..69605e7a2 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_12.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_12.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_13.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_13.png index 3e1c9c329..9ff3e4dde 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_13.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_13.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_14.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_14.png index f4f6ccd66..741e4b58f 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_14.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_14.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_15.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_15.png index 5dc1a6525..c725d6a71 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_15.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_15.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_16.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_16.png index bec472921..4bc14bdc9 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_16.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_16.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_17.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_17.png index 82e5176c8..4e4fa0e52 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_17.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_17.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_18.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_18.png index 3b5e60dfd..f7302372b 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_18.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_18.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_19.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_19.png index 5f76c7d23..d1d99f489 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_19.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_19.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_2.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_2.png index 84d6aaf35..ffc82fd6f 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_2.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_20.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_20.png index 2f8394fd5..99dbc3e08 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_20.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_20.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_3.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_3.png index 48adde113..f13628011 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_3.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_4.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_4.png index 5889835b7..5a0c613c9 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_4.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_5.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_5.png index 7f980f57f..61e2d1981 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_5.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_6.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_6.png index 497136000..1c6402cec 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_6.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_7.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_7.png index 03d67134a..37ea651ab 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_7.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_8.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_8.png index 9f523cace..5fdf6365d 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_8.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L2_Wake_up_128x64/frame_9.png b/assets/dolphin/external/L2_Wake_up_128x64/frame_9.png index 5a565b1af..9979896e4 100644 Binary files a/assets/dolphin/external/L2_Wake_up_128x64/frame_9.png and b/assets/dolphin/external/L2_Wake_up_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_0.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_0.png old mode 100755 new mode 100644 index 7d42cb57d..c727bd3f0 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_0.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_1.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_1.png old mode 100755 new mode 100644 index 25b4609c3..38e775d81 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_1.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_10.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_10.png old mode 100755 new mode 100644 index 575df3b9f..81be06a77 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_10.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_11.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_11.png old mode 100755 new mode 100644 index 2cfc582ef..808dd08fb Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_11.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_11.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_12.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_12.png old mode 100755 new mode 100644 index 4aa135cd6..214455e57 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_12.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_12.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_13.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_13.png old mode 100755 new mode 100644 index aae2827e8..d69939385 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_13.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_13.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_14.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_14.png old mode 100755 new mode 100644 index a66867a32..cf333a85e Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_14.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_14.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_15.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_15.png old mode 100755 new mode 100644 index 7ec1216e3..173de44e8 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_15.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_15.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_16.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_16.png old mode 100755 new mode 100644 index 2632103d6..be5e5fc3f Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_16.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_16.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_17.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_17.png old mode 100755 new mode 100644 index f50cd0b88..9857478f8 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_17.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_17.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_18.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_18.png old mode 100755 new mode 100644 index b5a85de1d..233f6aed6 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_18.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_18.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_19.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_19.png old mode 100755 new mode 100644 index d9a29def6..c02f58c52 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_19.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_19.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_2.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_2.png old mode 100755 new mode 100644 index ca4bf322b..61880587f Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_2.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_20.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_20.png old mode 100755 new mode 100644 index fe95a716c..e9fd6041f Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_20.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_20.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_21.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_21.png old mode 100755 new mode 100644 index 6a40d4148..db36ad5fa Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_21.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_21.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_22.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_22.png old mode 100755 new mode 100644 index 67189811d..72a78cde2 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_22.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_22.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_23.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_23.png old mode 100755 new mode 100644 index b770f3208..2a042e23e Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_23.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_23.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_24.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_24.png old mode 100755 new mode 100644 index 4a899faf2..f26aece8c Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_24.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_24.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_25.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_25.png old mode 100755 new mode 100644 index c12a583f5..e7bec7eed Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_25.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_25.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_26.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_26.png old mode 100755 new mode 100644 index f62f6495e..85b4e2ee9 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_26.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_26.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_27.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_27.png old mode 100755 new mode 100644 index 37218c396..ea3a6adf8 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_27.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_27.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_28.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_28.png old mode 100755 new mode 100644 index a28511c91..96328c9b2 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_28.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_28.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_29.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_29.png old mode 100755 new mode 100644 index f18f8798d..9334a3e83 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_29.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_29.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_3.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_3.png old mode 100755 new mode 100644 index 93e694375..1705c1f90 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_3.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_30.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_30.png old mode 100755 new mode 100644 index 64cf58580..67d6c1234 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_30.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_30.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_31.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_31.png old mode 100755 new mode 100644 index 2502b3f21..9cf2edd6f Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_31.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_31.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_32.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_32.png old mode 100755 new mode 100644 index 417419f85..1737a82cf Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_32.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_32.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_33.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_33.png old mode 100755 new mode 100644 index 5c7906075..a7a0ed870 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_33.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_33.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_34.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_34.png old mode 100755 new mode 100644 index 26dfe5391..3ef1e8f61 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_34.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_34.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_35.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_35.png old mode 100755 new mode 100644 index b6d507057..4f009f28c Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_35.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_35.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_36.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_36.png old mode 100755 new mode 100644 index 7bd425e1d..414041750 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_36.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_36.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_37.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_37.png old mode 100755 new mode 100644 index 7edea62a1..5432c2e0d Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_37.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_37.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_38.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_38.png old mode 100755 new mode 100644 index 7b51b6a34..2ad368010 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_38.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_38.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_39.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_39.png old mode 100755 new mode 100644 index 30b6bd67e..6f8b4f0ca Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_39.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_39.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_4.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_4.png old mode 100755 new mode 100644 index ff0b1fb28..8ee956c4b Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_4.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_40.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_40.png old mode 100755 new mode 100644 index d413cf0ed..24de01dab Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_40.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_40.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_41.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_41.png old mode 100755 new mode 100644 index 277077265..beac49ed8 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_41.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_41.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_42.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_42.png old mode 100755 new mode 100644 index baf3c7c79..2a095979a Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_42.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_42.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_43.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_43.png old mode 100755 new mode 100644 index b4cb1179f..32e35f4ba Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_43.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_43.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_44.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_44.png old mode 100755 new mode 100644 index 09dfc28e8..4dfef4ff6 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_44.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_44.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_45.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_45.png old mode 100755 new mode 100644 index 94b26fe06..de4d7cacc Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_45.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_45.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_46.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_46.png old mode 100755 new mode 100644 index 28f47d714..bb5719795 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_46.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_46.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_47.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_47.png old mode 100755 new mode 100644 index a9cc34ca2..8aaceac98 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_47.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_47.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_48.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_48.png old mode 100755 new mode 100644 index cc9a89dad..11e017674 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_48.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_48.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_49.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_49.png old mode 100755 new mode 100644 index ef68cf866..c667c9f81 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_49.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_49.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_5.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_5.png old mode 100755 new mode 100644 index b0367a603..e7de890b4 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_5.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_50.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_50.png old mode 100755 new mode 100644 index a44a566c7..d3305472c Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_50.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_50.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_51.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_51.png old mode 100755 new mode 100644 index ba00473dd..3d7005fb6 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_51.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_51.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_52.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_52.png old mode 100755 new mode 100644 index 8045749ac..a7db03a33 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_52.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_52.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_53.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_53.png old mode 100755 new mode 100644 index 18337cd63..f443ae5c3 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_53.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_53.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_54.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_54.png old mode 100755 new mode 100644 index 10be0ad16..a32249641 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_54.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_54.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_55.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_55.png old mode 100755 new mode 100644 index fd8269bb4..da7a84aea Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_55.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_55.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_56.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_56.png old mode 100755 new mode 100644 index 300cbd9ec..7d0b0732a Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_56.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_56.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_6.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_6.png old mode 100755 new mode 100644 index 56f37fbd8..645953060 Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_6.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_7.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_7.png old mode 100755 new mode 100644 index 0e4fb27a6..4be5ea9ac Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_7.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_8.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_8.png old mode 100755 new mode 100644 index 641d06f39..8cf252c9f Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_8.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_9.png b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_9.png old mode 100755 new mode 100644 index 5bcf7e588..9cc334e0a Binary files a/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_9.png and b/assets/dolphin/external/L3_Freedom_2_dolphins_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_0.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_0.png index 3b82285e6..87d1fc9d2 100644 Binary files a/assets/dolphin/external/L3_Furippa3_128x64/frame_0.png and b/assets/dolphin/external/L3_Furippa3_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_1.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_1.png index 7af08829b..67d77257f 100644 Binary files a/assets/dolphin/external/L3_Furippa3_128x64/frame_1.png and b/assets/dolphin/external/L3_Furippa3_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_10.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_10.png index 0ef6d471d..7bca8d134 100644 Binary files a/assets/dolphin/external/L3_Furippa3_128x64/frame_10.png and b/assets/dolphin/external/L3_Furippa3_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_11.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_11.png index e6f397eb8..be63ef5c4 100644 Binary files a/assets/dolphin/external/L3_Furippa3_128x64/frame_11.png and b/assets/dolphin/external/L3_Furippa3_128x64/frame_11.png differ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_12.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_12.png index 9221fb156..95d09d14b 100644 Binary files a/assets/dolphin/external/L3_Furippa3_128x64/frame_12.png and b/assets/dolphin/external/L3_Furippa3_128x64/frame_12.png differ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_13.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_13.png index e43b1edb8..c385a5ec4 100644 Binary files a/assets/dolphin/external/L3_Furippa3_128x64/frame_13.png and b/assets/dolphin/external/L3_Furippa3_128x64/frame_13.png differ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_14.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_14.png index 64da8d8f9..25b4ec565 100644 Binary files a/assets/dolphin/external/L3_Furippa3_128x64/frame_14.png and b/assets/dolphin/external/L3_Furippa3_128x64/frame_14.png differ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_15.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_15.png index 96b196696..228c29482 100644 Binary files a/assets/dolphin/external/L3_Furippa3_128x64/frame_15.png and b/assets/dolphin/external/L3_Furippa3_128x64/frame_15.png differ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_16.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_16.png index 620dbca29..49e01f317 100644 Binary files a/assets/dolphin/external/L3_Furippa3_128x64/frame_16.png and b/assets/dolphin/external/L3_Furippa3_128x64/frame_16.png differ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_17.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_17.png index 49aa979d7..f5871e49c 100644 Binary files a/assets/dolphin/external/L3_Furippa3_128x64/frame_17.png and b/assets/dolphin/external/L3_Furippa3_128x64/frame_17.png differ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_18.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_18.png index 7739e294a..d2a276eea 100644 Binary files a/assets/dolphin/external/L3_Furippa3_128x64/frame_18.png and b/assets/dolphin/external/L3_Furippa3_128x64/frame_18.png differ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_2.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_2.png index c36e54b2f..c5e8a2a5b 100644 Binary files a/assets/dolphin/external/L3_Furippa3_128x64/frame_2.png and b/assets/dolphin/external/L3_Furippa3_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_3.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_3.png index dce96b74c..6849b5011 100644 Binary files a/assets/dolphin/external/L3_Furippa3_128x64/frame_3.png and b/assets/dolphin/external/L3_Furippa3_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_4.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_4.png index 2c096689a..41575e79f 100644 Binary files a/assets/dolphin/external/L3_Furippa3_128x64/frame_4.png and b/assets/dolphin/external/L3_Furippa3_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_5.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_5.png index 792719974..f7965d9f7 100644 Binary files a/assets/dolphin/external/L3_Furippa3_128x64/frame_5.png and b/assets/dolphin/external/L3_Furippa3_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_6.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_6.png index 689e7dd79..3288f6ab9 100644 Binary files a/assets/dolphin/external/L3_Furippa3_128x64/frame_6.png and b/assets/dolphin/external/L3_Furippa3_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_7.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_7.png index 7b468ab83..87d1fc9d2 100644 Binary files a/assets/dolphin/external/L3_Furippa3_128x64/frame_7.png and b/assets/dolphin/external/L3_Furippa3_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_8.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_8.png index e9246c0b7..2cd571dff 100644 Binary files a/assets/dolphin/external/L3_Furippa3_128x64/frame_8.png and b/assets/dolphin/external/L3_Furippa3_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L3_Furippa3_128x64/frame_9.png b/assets/dolphin/external/L3_Furippa3_128x64/frame_9.png index c2e164c51..e2f84bac5 100644 Binary files a/assets/dolphin/external/L3_Furippa3_128x64/frame_9.png and b/assets/dolphin/external/L3_Furippa3_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_0.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_0.png index 6fb7de66c..0c47516c2 100644 Binary files a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_0.png and b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_1.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_1.png index eaf39cff4..dd02ff2e9 100644 Binary files a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_1.png and b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_10.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_10.png index 1e3890a7b..60556a9dd 100644 Binary files a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_10.png and b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_11.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_11.png index fc8aef13a..a0b7ea6c8 100644 Binary files a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_11.png and b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_11.png differ diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_12.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_12.png index 8174af0d1..6faa6fd5b 100644 Binary files a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_12.png and b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_12.png differ diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_13.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_13.png index b5e75921a..d92aeb984 100644 Binary files a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_13.png and b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_13.png differ diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_2.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_2.png index 6a239a1b6..a4da82eab 100644 Binary files a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_2.png and b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_3.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_3.png index 8cec74395..c5ba8af0e 100644 Binary files a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_3.png and b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_4.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_4.png index d034b0a53..23166c1a6 100644 Binary files a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_4.png and b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_5.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_5.png index 472241e56..7cd73e35b 100644 Binary files a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_5.png and b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_6.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_6.png index db53a0bb4..fe9a996a1 100644 Binary files a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_6.png and b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_7.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_7.png index f2015a77d..06e38fddc 100644 Binary files a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_7.png and b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_8.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_8.png index 39b8d5f8f..7240e048b 100644 Binary files a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_8.png and b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_9.png b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_9.png index 8b5e6f5ee..c074f6881 100644 Binary files a/assets/dolphin/external/L3_Hijack_radio_128x64/frame_9.png and b/assets/dolphin/external/L3_Hijack_radio_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_0.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_0.png old mode 100755 new mode 100644 index b937cc086..3b179a0d4 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_0.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_0.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_1.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_1.png old mode 100755 new mode 100644 index a3b494dda..bba17279d Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_1.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_1.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_10.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_10.png old mode 100755 new mode 100644 index b8163164b..5016136e5 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_10.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_10.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_11.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_11.png old mode 100755 new mode 100644 index e685ff86a..95c1a8a32 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_11.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_11.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_12.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_12.png old mode 100755 new mode 100644 index 10a52400b..fd0a6c625 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_12.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_12.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_13.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_13.png old mode 100755 new mode 100644 index 9cdea5002..4f4a2623c Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_13.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_13.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_14.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_14.png old mode 100755 new mode 100644 index 590d0bf89..4d27df289 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_14.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_14.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_15.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_15.png old mode 100755 new mode 100644 index 97cf05dd0..e6be08847 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_15.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_15.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_16.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_16.png old mode 100755 new mode 100644 index e2bae209f..779de319e Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_16.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_16.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_17.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_17.png old mode 100755 new mode 100644 index 63db9fa0e..b9e89ebd0 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_17.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_17.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_18.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_18.png old mode 100755 new mode 100644 index ad66f34ef..255818b91 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_18.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_18.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_19.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_19.png old mode 100755 new mode 100644 index 213fb7636..23e10f553 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_19.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_19.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_2.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_2.png old mode 100755 new mode 100644 index 81174f7fa..d0426c0fc Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_2.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_2.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_20.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_20.png old mode 100755 new mode 100644 index 7f4ce3bac..e80dee320 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_20.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_20.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_21.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_21.png old mode 100755 new mode 100644 index dc90311fe..64b38cbff Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_21.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_21.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_22.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_22.png old mode 100755 new mode 100644 index cda17cb60..52793ffae Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_22.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_22.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_23.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_23.png old mode 100755 new mode 100644 index 7a048dbae..fefe0d834 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_23.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_23.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_24.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_24.png old mode 100755 new mode 100644 index c5a80a925..0e46efde1 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_24.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_24.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_25.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_25.png old mode 100755 new mode 100644 index e80fdfb00..69b8e9d5a Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_25.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_25.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_26.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_26.png old mode 100755 new mode 100644 index b3955ac8a..d93dc9aa7 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_26.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_26.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_27.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_27.png old mode 100755 new mode 100644 index 4b003d034..c7f848cb7 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_27.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_27.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_28.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_28.png old mode 100755 new mode 100644 index df2008d93..adcae64da Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_28.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_28.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_29.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_29.png old mode 100755 new mode 100644 index c0afacdfa..05dd84317 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_29.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_29.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_3.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_3.png old mode 100755 new mode 100644 index 97c138235..d8155c7e2 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_3.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_3.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_30.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_30.png old mode 100755 new mode 100644 index 6f693de4f..9b60bc189 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_30.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_30.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_31.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_31.png old mode 100755 new mode 100644 index c971b2178..19ae6d56f Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_31.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_31.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_32.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_32.png old mode 100755 new mode 100644 index 856c84557..dcc5cfdde Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_32.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_32.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_33.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_33.png old mode 100755 new mode 100644 index 7e99a4a82..6548ece20 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_33.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_33.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_34.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_34.png old mode 100755 new mode 100644 index 949d845d4..266021370 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_34.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_34.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_35.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_35.png old mode 100755 new mode 100644 index ee7be1409..c44b65adc Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_35.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_35.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_36.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_36.png old mode 100755 new mode 100644 index ae6fca1cd..28aa1539c Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_36.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_36.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_37.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_37.png old mode 100755 new mode 100644 index 2567cf087..95ac16500 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_37.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_37.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_38.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_38.png old mode 100755 new mode 100644 index b3d0c7acf..796df31f4 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_38.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_38.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_39.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_39.png old mode 100755 new mode 100644 index dd98cfcbd..320de262d Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_39.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_39.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_4.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_4.png old mode 100755 new mode 100644 index 0f81cd5dc..bf55efc7d Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_4.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_4.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_40.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_40.png old mode 100755 new mode 100644 index 8e55dd9ed..4af4b80a6 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_40.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_40.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_41.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_41.png old mode 100755 new mode 100644 index 459f0c8e6..707dc05bb Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_41.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_41.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_42.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_42.png old mode 100755 new mode 100644 index 3c0955993..19de275d9 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_42.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_42.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_43.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_43.png old mode 100755 new mode 100644 index 32d4eb4f1..95e61d24f Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_43.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_43.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_44.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_44.png old mode 100755 new mode 100644 index 11bd640ae..376b23ee9 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_44.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_44.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_45.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_45.png old mode 100755 new mode 100644 index 27af626e8..5e2b91f0b Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_45.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_45.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_46.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_46.png old mode 100755 new mode 100644 index cfc81bd3f..b19f70c54 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_46.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_46.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_47.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_47.png old mode 100755 new mode 100644 index f9480b1e3..1d6afe6ff Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_47.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_47.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_48.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_48.png old mode 100755 new mode 100644 index 6793a3df6..38e8bc329 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_48.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_48.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_49.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_49.png old mode 100755 new mode 100644 index 6b58a0fa7..f22a84b66 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_49.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_49.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_5.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_5.png old mode 100755 new mode 100644 index cb62bb7b3..7c0c0539d Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_5.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_5.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_50.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_50.png old mode 100755 new mode 100644 index 8b5ab6a9b..a08a141db Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_50.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_50.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_51.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_51.png old mode 100755 new mode 100644 index 9a2c6b150..3f631fe4e Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_51.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_51.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_52.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_52.png old mode 100755 new mode 100644 index f7da1b587..043481281 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_52.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_52.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_53.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_53.png old mode 100755 new mode 100644 index d8e390bb5..cb8d0f15f Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_53.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_53.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_54.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_54.png old mode 100755 new mode 100644 index 8dfe5defe..66179fcd1 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_54.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_54.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_55.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_55.png old mode 100755 new mode 100644 index fae299733..0c25fab74 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_55.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_55.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_6.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_6.png old mode 100755 new mode 100644 index 2d111a7a1..15034fad3 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_6.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_6.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_7.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_7.png old mode 100755 new mode 100644 index 4c8a9d2e5..d5d30c8ed Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_7.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_7.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_8.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_8.png old mode 100755 new mode 100644 index aa0d1e6a7..dab8497c8 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_8.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_8.png differ diff --git a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_9.png b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_9.png old mode 100755 new mode 100644 index 9f2d03b7e..e445ae752 Binary files a/assets/dolphin/external/L3_Intruder_alert_128x64/frame_9.png and b/assets/dolphin/external/L3_Intruder_alert_128x64/frame_9.png differ diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_0.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_0.png index c85bb77c4..3d170012c 100644 Binary files a/assets/dolphin/external/L3_Lab_research_128x54/frame_0.png and b/assets/dolphin/external/L3_Lab_research_128x54/frame_0.png differ diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_1.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_1.png index dedff6024..2c4b10234 100644 Binary files a/assets/dolphin/external/L3_Lab_research_128x54/frame_1.png and b/assets/dolphin/external/L3_Lab_research_128x54/frame_1.png differ diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_10.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_10.png index 1a53ab75d..02a91f9ba 100644 Binary files a/assets/dolphin/external/L3_Lab_research_128x54/frame_10.png and b/assets/dolphin/external/L3_Lab_research_128x54/frame_10.png differ diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_11.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_11.png index 1768d50dd..12e545419 100644 Binary files a/assets/dolphin/external/L3_Lab_research_128x54/frame_11.png and b/assets/dolphin/external/L3_Lab_research_128x54/frame_11.png differ diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_12.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_12.png index 2beb237d9..489c53035 100644 Binary files a/assets/dolphin/external/L3_Lab_research_128x54/frame_12.png and b/assets/dolphin/external/L3_Lab_research_128x54/frame_12.png differ diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_13.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_13.png index c46dc3bab..daa7667cc 100644 Binary files a/assets/dolphin/external/L3_Lab_research_128x54/frame_13.png and b/assets/dolphin/external/L3_Lab_research_128x54/frame_13.png differ diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_2.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_2.png index 01f07c68d..34650daa6 100644 Binary files a/assets/dolphin/external/L3_Lab_research_128x54/frame_2.png and b/assets/dolphin/external/L3_Lab_research_128x54/frame_2.png differ diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_3.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_3.png index 148fe4640..7da00632d 100644 Binary files a/assets/dolphin/external/L3_Lab_research_128x54/frame_3.png and b/assets/dolphin/external/L3_Lab_research_128x54/frame_3.png differ diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_4.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_4.png index 0d402b0db..9a5d688cf 100644 Binary files a/assets/dolphin/external/L3_Lab_research_128x54/frame_4.png and b/assets/dolphin/external/L3_Lab_research_128x54/frame_4.png differ diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_5.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_5.png index 6853e1d61..697b307cb 100644 Binary files a/assets/dolphin/external/L3_Lab_research_128x54/frame_5.png and b/assets/dolphin/external/L3_Lab_research_128x54/frame_5.png differ diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_6.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_6.png index 9a92ba8d8..daa7667cc 100644 Binary files a/assets/dolphin/external/L3_Lab_research_128x54/frame_6.png and b/assets/dolphin/external/L3_Lab_research_128x54/frame_6.png differ diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_7.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_7.png index 910ae5852..91fd1cbaf 100644 Binary files a/assets/dolphin/external/L3_Lab_research_128x54/frame_7.png and b/assets/dolphin/external/L3_Lab_research_128x54/frame_7.png differ diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_8.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_8.png index 0f681e6ab..7fc99ca89 100644 Binary files a/assets/dolphin/external/L3_Lab_research_128x54/frame_8.png and b/assets/dolphin/external/L3_Lab_research_128x54/frame_8.png differ diff --git a/assets/dolphin/external/L3_Lab_research_128x54/frame_9.png b/assets/dolphin/external/L3_Lab_research_128x54/frame_9.png index 0f391b75e..6b237672e 100644 Binary files a/assets/dolphin/external/L3_Lab_research_128x54/frame_9.png and b/assets/dolphin/external/L3_Lab_research_128x54/frame_9.png differ diff --git a/assets/dolphin/internal/L1_BadBattery_128x47/frame_0.png b/assets/dolphin/internal/L1_BadBattery_128x47/frame_0.png index 7d3f3dcdf..4977401e1 100644 Binary files a/assets/dolphin/internal/L1_BadBattery_128x47/frame_0.png and b/assets/dolphin/internal/L1_BadBattery_128x47/frame_0.png differ diff --git a/assets/dolphin/internal/L1_BadBattery_128x47/frame_1.png b/assets/dolphin/internal/L1_BadBattery_128x47/frame_1.png index 98c2979cf..ef1f17fcc 100644 Binary files a/assets/dolphin/internal/L1_BadBattery_128x47/frame_1.png and b/assets/dolphin/internal/L1_BadBattery_128x47/frame_1.png differ diff --git a/assets/dolphin/internal/L1_NoSd_128x49/frame_0.png b/assets/dolphin/internal/L1_NoSd_128x49/frame_0.png index 9a48d15f7..0ba376d65 100644 Binary files a/assets/dolphin/internal/L1_NoSd_128x49/frame_0.png and b/assets/dolphin/internal/L1_NoSd_128x49/frame_0.png differ diff --git a/assets/dolphin/internal/L1_NoSd_128x49/frame_1.png b/assets/dolphin/internal/L1_NoSd_128x49/frame_1.png index b58936d81..4764b4888 100644 Binary files a/assets/dolphin/internal/L1_NoSd_128x49/frame_1.png and b/assets/dolphin/internal/L1_NoSd_128x49/frame_1.png differ diff --git a/assets/dolphin/internal/L1_NoSd_128x49/frame_2.png b/assets/dolphin/internal/L1_NoSd_128x49/frame_2.png index 5b474fff2..554fe0156 100644 Binary files a/assets/dolphin/internal/L1_NoSd_128x49/frame_2.png and b/assets/dolphin/internal/L1_NoSd_128x49/frame_2.png differ diff --git a/assets/dolphin/internal/L1_NoSd_128x49/frame_3.png b/assets/dolphin/internal/L1_NoSd_128x49/frame_3.png index 952f968fb..692a584a3 100644 Binary files a/assets/dolphin/internal/L1_NoSd_128x49/frame_3.png and b/assets/dolphin/internal/L1_NoSd_128x49/frame_3.png differ diff --git a/assets/dolphin/internal/L1_NoSd_128x49/frame_4.png b/assets/dolphin/internal/L1_NoSd_128x49/frame_4.png index 2bb43b306..9efdaf23a 100644 Binary files a/assets/dolphin/internal/L1_NoSd_128x49/frame_4.png and b/assets/dolphin/internal/L1_NoSd_128x49/frame_4.png differ diff --git a/assets/dolphin/internal/L1_NoSd_128x49/frame_5.png b/assets/dolphin/internal/L1_NoSd_128x49/frame_5.png index d7f8c6402..657cbf815 100644 Binary files a/assets/dolphin/internal/L1_NoSd_128x49/frame_5.png and b/assets/dolphin/internal/L1_NoSd_128x49/frame_5.png differ diff --git a/assets/dolphin/internal/L1_Tv_128x47/frame_0.png b/assets/dolphin/internal/L1_Tv_128x47/frame_0.png index acc24df00..f225aa993 100644 Binary files a/assets/dolphin/internal/L1_Tv_128x47/frame_0.png and b/assets/dolphin/internal/L1_Tv_128x47/frame_0.png differ diff --git a/assets/dolphin/internal/L1_Tv_128x47/frame_1.png b/assets/dolphin/internal/L1_Tv_128x47/frame_1.png index b0ead7994..81f12ca09 100644 Binary files a/assets/dolphin/internal/L1_Tv_128x47/frame_1.png and b/assets/dolphin/internal/L1_Tv_128x47/frame_1.png differ diff --git a/assets/dolphin/internal/L1_Tv_128x47/frame_2.png b/assets/dolphin/internal/L1_Tv_128x47/frame_2.png index c1541b2dd..ce0d85411 100644 Binary files a/assets/dolphin/internal/L1_Tv_128x47/frame_2.png and b/assets/dolphin/internal/L1_Tv_128x47/frame_2.png differ diff --git a/assets/dolphin/internal/L1_Tv_128x47/frame_3.png b/assets/dolphin/internal/L1_Tv_128x47/frame_3.png index 1e13b0951..40bf13a4d 100644 Binary files a/assets/dolphin/internal/L1_Tv_128x47/frame_3.png and b/assets/dolphin/internal/L1_Tv_128x47/frame_3.png differ diff --git a/assets/dolphin/internal/L1_Tv_128x47/frame_4.png b/assets/dolphin/internal/L1_Tv_128x47/frame_4.png index 7d87fa2f8..13d3074c9 100644 Binary files a/assets/dolphin/internal/L1_Tv_128x47/frame_4.png and b/assets/dolphin/internal/L1_Tv_128x47/frame_4.png differ diff --git a/assets/dolphin/internal/L1_Tv_128x47/frame_5.png b/assets/dolphin/internal/L1_Tv_128x47/frame_5.png index 282f43059..b11e81b8d 100644 Binary files a/assets/dolphin/internal/L1_Tv_128x47/frame_5.png and b/assets/dolphin/internal/L1_Tv_128x47/frame_5.png differ diff --git a/assets/dolphin/internal/L1_Tv_128x47/frame_6.png b/assets/dolphin/internal/L1_Tv_128x47/frame_6.png index 8516cbe75..52fdba463 100644 Binary files a/assets/dolphin/internal/L1_Tv_128x47/frame_6.png and b/assets/dolphin/internal/L1_Tv_128x47/frame_6.png differ diff --git a/assets/dolphin/internal/L1_Tv_128x47/frame_7.png b/assets/dolphin/internal/L1_Tv_128x47/frame_7.png index 42196cab1..d2834c6ed 100644 Binary files a/assets/dolphin/internal/L1_Tv_128x47/frame_7.png and b/assets/dolphin/internal/L1_Tv_128x47/frame_7.png differ diff --git a/assets/icons/Animations/Levelup1_128x64/frame_00.png b/assets/icons/Animations/Levelup1_128x64/frame_00.png index bf97f8d6e..d0d8bc82f 100644 Binary files a/assets/icons/Animations/Levelup1_128x64/frame_00.png and b/assets/icons/Animations/Levelup1_128x64/frame_00.png differ diff --git a/assets/icons/Animations/Levelup1_128x64/frame_01.png b/assets/icons/Animations/Levelup1_128x64/frame_01.png index 39c910d3a..1429d994e 100644 Binary files a/assets/icons/Animations/Levelup1_128x64/frame_01.png and b/assets/icons/Animations/Levelup1_128x64/frame_01.png differ diff --git a/assets/icons/Animations/Levelup1_128x64/frame_02.png b/assets/icons/Animations/Levelup1_128x64/frame_02.png index 4975adf86..4b3bf5f83 100644 Binary files a/assets/icons/Animations/Levelup1_128x64/frame_02.png and b/assets/icons/Animations/Levelup1_128x64/frame_02.png differ diff --git a/assets/icons/Animations/Levelup1_128x64/frame_03.png b/assets/icons/Animations/Levelup1_128x64/frame_03.png index 5a05529c5..188a38bbf 100644 Binary files a/assets/icons/Animations/Levelup1_128x64/frame_03.png and b/assets/icons/Animations/Levelup1_128x64/frame_03.png differ diff --git a/assets/icons/Animations/Levelup1_128x64/frame_04.png b/assets/icons/Animations/Levelup1_128x64/frame_04.png index e6c88df92..3d9711731 100644 Binary files a/assets/icons/Animations/Levelup1_128x64/frame_04.png and b/assets/icons/Animations/Levelup1_128x64/frame_04.png differ diff --git a/assets/icons/Animations/Levelup1_128x64/frame_05.png b/assets/icons/Animations/Levelup1_128x64/frame_05.png index e7bae4d6c..639d7fc17 100644 Binary files a/assets/icons/Animations/Levelup1_128x64/frame_05.png and b/assets/icons/Animations/Levelup1_128x64/frame_05.png differ diff --git a/assets/icons/Animations/Levelup1_128x64/frame_06.png b/assets/icons/Animations/Levelup1_128x64/frame_06.png index 489bce368..4227e1784 100644 Binary files a/assets/icons/Animations/Levelup1_128x64/frame_06.png and b/assets/icons/Animations/Levelup1_128x64/frame_06.png differ diff --git a/assets/icons/Animations/Levelup1_128x64/frame_07.png b/assets/icons/Animations/Levelup1_128x64/frame_07.png index 32e864e98..d59622993 100644 Binary files a/assets/icons/Animations/Levelup1_128x64/frame_07.png and b/assets/icons/Animations/Levelup1_128x64/frame_07.png differ diff --git a/assets/icons/Animations/Levelup1_128x64/frame_08.png b/assets/icons/Animations/Levelup1_128x64/frame_08.png index c692f4895..23b9a9bd0 100644 Binary files a/assets/icons/Animations/Levelup1_128x64/frame_08.png and b/assets/icons/Animations/Levelup1_128x64/frame_08.png differ diff --git a/assets/icons/Animations/Levelup1_128x64/frame_09.png b/assets/icons/Animations/Levelup1_128x64/frame_09.png index fb1c8bb90..1fdedbc19 100644 Binary files a/assets/icons/Animations/Levelup1_128x64/frame_09.png and b/assets/icons/Animations/Levelup1_128x64/frame_09.png differ diff --git a/assets/icons/Animations/Levelup1_128x64/frame_10.png b/assets/icons/Animations/Levelup1_128x64/frame_10.png index 3b0205a48..79e0b1543 100644 Binary files a/assets/icons/Animations/Levelup1_128x64/frame_10.png and b/assets/icons/Animations/Levelup1_128x64/frame_10.png differ diff --git a/assets/icons/Animations/Levelup2_128x64/frame_00.png b/assets/icons/Animations/Levelup2_128x64/frame_00.png index 77b531076..0bf23b5c5 100644 Binary files a/assets/icons/Animations/Levelup2_128x64/frame_00.png and b/assets/icons/Animations/Levelup2_128x64/frame_00.png differ diff --git a/assets/icons/Animations/Levelup2_128x64/frame_01.png b/assets/icons/Animations/Levelup2_128x64/frame_01.png index b53437265..b9990b406 100644 Binary files a/assets/icons/Animations/Levelup2_128x64/frame_01.png and b/assets/icons/Animations/Levelup2_128x64/frame_01.png differ diff --git a/assets/icons/Animations/Levelup2_128x64/frame_02.png b/assets/icons/Animations/Levelup2_128x64/frame_02.png index 9623af7d8..a57641e44 100644 Binary files a/assets/icons/Animations/Levelup2_128x64/frame_02.png and b/assets/icons/Animations/Levelup2_128x64/frame_02.png differ diff --git a/assets/icons/Animations/Levelup2_128x64/frame_03.png b/assets/icons/Animations/Levelup2_128x64/frame_03.png index f18269019..deeff97c5 100644 Binary files a/assets/icons/Animations/Levelup2_128x64/frame_03.png and b/assets/icons/Animations/Levelup2_128x64/frame_03.png differ diff --git a/assets/icons/Animations/Levelup2_128x64/frame_04.png b/assets/icons/Animations/Levelup2_128x64/frame_04.png index 677a3367e..4b7367a37 100644 Binary files a/assets/icons/Animations/Levelup2_128x64/frame_04.png and b/assets/icons/Animations/Levelup2_128x64/frame_04.png differ diff --git a/assets/icons/Animations/Levelup2_128x64/frame_05.png b/assets/icons/Animations/Levelup2_128x64/frame_05.png index fb58fed1e..a033448f7 100644 Binary files a/assets/icons/Animations/Levelup2_128x64/frame_05.png and b/assets/icons/Animations/Levelup2_128x64/frame_05.png differ diff --git a/assets/icons/Animations/Levelup2_128x64/frame_06.png b/assets/icons/Animations/Levelup2_128x64/frame_06.png index b2cbd699b..5389124dc 100644 Binary files a/assets/icons/Animations/Levelup2_128x64/frame_06.png and b/assets/icons/Animations/Levelup2_128x64/frame_06.png differ diff --git a/assets/icons/Animations/Levelup2_128x64/frame_07.png b/assets/icons/Animations/Levelup2_128x64/frame_07.png index 4f3dfc8c4..cd4324f0d 100644 Binary files a/assets/icons/Animations/Levelup2_128x64/frame_07.png and b/assets/icons/Animations/Levelup2_128x64/frame_07.png differ diff --git a/assets/icons/Animations/Levelup2_128x64/frame_08.png b/assets/icons/Animations/Levelup2_128x64/frame_08.png index 3a5a28805..fea362808 100644 Binary files a/assets/icons/Animations/Levelup2_128x64/frame_08.png and b/assets/icons/Animations/Levelup2_128x64/frame_08.png differ diff --git a/assets/icons/Animations/Levelup2_128x64/frame_09.png b/assets/icons/Animations/Levelup2_128x64/frame_09.png index 76267a2a8..fd4a3de1d 100644 Binary files a/assets/icons/Animations/Levelup2_128x64/frame_09.png and b/assets/icons/Animations/Levelup2_128x64/frame_09.png differ diff --git a/assets/icons/Animations/Levelup2_128x64/frame_10.png b/assets/icons/Animations/Levelup2_128x64/frame_10.png index bda1bf44c..fae535997 100644 Binary files a/assets/icons/Animations/Levelup2_128x64/frame_10.png and b/assets/icons/Animations/Levelup2_128x64/frame_10.png differ diff --git a/assets/icons/Archive/125_10px.png b/assets/icons/Archive/125_10px.png index ce01284a2..fd3947ff3 100644 Binary files a/assets/icons/Archive/125_10px.png and b/assets/icons/Archive/125_10px.png differ diff --git a/assets/icons/Archive/Nfc_10px.png b/assets/icons/Archive/Nfc_10px.png index 6bc027111..e998d291e 100644 Binary files a/assets/icons/Archive/Nfc_10px.png and b/assets/icons/Archive/Nfc_10px.png differ diff --git a/assets/icons/Archive/back_10px.png b/assets/icons/Archive/back_10px.png index f9c615a99..b7ffd4efb 100644 Binary files a/assets/icons/Archive/back_10px.png and b/assets/icons/Archive/back_10px.png differ diff --git a/assets/icons/Archive/badusb_10px.png b/assets/icons/Archive/badusb_10px.png index 037474aa3..2b5a3bf97 100644 Binary files a/assets/icons/Archive/badusb_10px.png and b/assets/icons/Archive/badusb_10px.png differ diff --git a/assets/icons/Archive/dir_10px.png b/assets/icons/Archive/dir_10px.png index a4cdf453e..1b64022c2 100644 Binary files a/assets/icons/Archive/dir_10px.png and b/assets/icons/Archive/dir_10px.png differ diff --git a/assets/icons/Archive/ibutt_10px.png b/assets/icons/Archive/ibutt_10px.png index 2fdaf123a..f73af065f 100644 Binary files a/assets/icons/Archive/ibutt_10px.png and b/assets/icons/Archive/ibutt_10px.png differ diff --git a/assets/icons/Archive/ir_10px.png b/assets/icons/Archive/ir_10px.png index 22c986180..36c214f3b 100644 Binary files a/assets/icons/Archive/ir_10px.png and b/assets/icons/Archive/ir_10px.png differ diff --git a/assets/icons/Archive/js_script_10px.png b/assets/icons/Archive/js_script_10px.png index 77ac76337..48210a049 100644 Binary files a/assets/icons/Archive/js_script_10px.png and b/assets/icons/Archive/js_script_10px.png differ diff --git a/assets/icons/Archive/keyboard_10px.png b/assets/icons/Archive/keyboard_10px.png index 74a10e6db..dc3e3cee2 100644 Binary files a/assets/icons/Archive/keyboard_10px.png and b/assets/icons/Archive/keyboard_10px.png differ diff --git a/assets/icons/Archive/loading_10px.png b/assets/icons/Archive/loading_10px.png index 4f626b3d5..a6065b6c0 100644 Binary files a/assets/icons/Archive/loading_10px.png and b/assets/icons/Archive/loading_10px.png differ diff --git a/assets/icons/Archive/music_10px.png b/assets/icons/Archive/music_10px.png index d41eb0db8..98fed6d92 100644 Binary files a/assets/icons/Archive/music_10px.png and b/assets/icons/Archive/music_10px.png differ diff --git a/assets/icons/Archive/sub1_10px.png b/assets/icons/Archive/sub1_10px.png index 5a25fdf4e..70940ad77 100644 Binary files a/assets/icons/Archive/sub1_10px.png and b/assets/icons/Archive/sub1_10px.png differ diff --git a/assets/icons/Archive/u2f_10px.png b/assets/icons/Archive/u2f_10px.png index fcd87a2ef..6f46b0e78 100644 Binary files a/assets/icons/Archive/u2f_10px.png and b/assets/icons/Archive/u2f_10px.png differ diff --git a/assets/icons/Archive/unknown_10px.png b/assets/icons/Archive/unknown_10px.png index 18d31c67c..2d2668e85 100644 Binary files a/assets/icons/Archive/unknown_10px.png and b/assets/icons/Archive/unknown_10px.png differ diff --git a/assets/icons/Archive/update_10px.png b/assets/icons/Archive/update_10px.png index 5a97651c4..94c96769f 100644 Binary files a/assets/icons/Archive/update_10px.png and b/assets/icons/Archive/update_10px.png differ diff --git a/assets/icons/BLE/BLE_HID/Ble_connected_15x15.png b/assets/icons/BLE/BLE_HID/Ble_connected_15x15.png index 64dab9b53..1301399da 100644 Binary files a/assets/icons/BLE/BLE_HID/Ble_connected_15x15.png and b/assets/icons/BLE/BLE_HID/Ble_connected_15x15.png differ diff --git a/assets/icons/BLE/BLE_HID/Ble_disconnected_15x15.png b/assets/icons/BLE/BLE_HID/Ble_disconnected_15x15.png index 0858bb93f..f926ce212 100644 Binary files a/assets/icons/BLE/BLE_HID/Ble_disconnected_15x15.png and b/assets/icons/BLE/BLE_HID/Ble_disconnected_15x15.png differ diff --git a/assets/icons/BLE/BLE_HID/Button_18x18.png b/assets/icons/BLE/BLE_HID/Button_18x18.png index 30a5b4fab..2334dd8be 100644 Binary files a/assets/icons/BLE/BLE_HID/Button_18x18.png and b/assets/icons/BLE/BLE_HID/Button_18x18.png differ diff --git a/assets/icons/BLE/BLE_HID/Circles_47x47.png b/assets/icons/BLE/BLE_HID/Circles_47x47.png index 6a16ebf7b..bf72412f5 100644 Binary files a/assets/icons/BLE/BLE_HID/Circles_47x47.png and b/assets/icons/BLE/BLE_HID/Circles_47x47.png differ diff --git a/assets/icons/BLE/BLE_HID/Left_mouse_icon_9x9.png b/assets/icons/BLE/BLE_HID/Left_mouse_icon_9x9.png index c533d8572..5bd2d395f 100644 Binary files a/assets/icons/BLE/BLE_HID/Left_mouse_icon_9x9.png and b/assets/icons/BLE/BLE_HID/Left_mouse_icon_9x9.png differ diff --git a/assets/icons/BLE/BLE_HID/Ok_btn_9x9.png b/assets/icons/BLE/BLE_HID/Ok_btn_9x9.png index 9a1539da2..ceff4e8a8 100644 Binary files a/assets/icons/BLE/BLE_HID/Ok_btn_9x9.png and b/assets/icons/BLE/BLE_HID/Ok_btn_9x9.png differ diff --git a/assets/icons/BLE/BLE_HID/Ok_btn_pressed_13x13.png b/assets/icons/BLE/BLE_HID/Ok_btn_pressed_13x13.png index 6b46ba3a8..ced2369b4 100644 Binary files a/assets/icons/BLE/BLE_HID/Ok_btn_pressed_13x13.png and b/assets/icons/BLE/BLE_HID/Ok_btn_pressed_13x13.png differ diff --git a/assets/icons/BLE/BLE_HID/Pressed_Button_13x13.png b/assets/icons/BLE/BLE_HID/Pressed_Button_13x13.png index 823926b84..d0e2c3a37 100644 Binary files a/assets/icons/BLE/BLE_HID/Pressed_Button_13x13.png and b/assets/icons/BLE/BLE_HID/Pressed_Button_13x13.png differ diff --git a/assets/icons/BLE/BLE_HID/Right_mouse_icon_9x9.png b/assets/icons/BLE/BLE_HID/Right_mouse_icon_9x9.png index 446d7176c..1da29ee43 100644 Binary files a/assets/icons/BLE/BLE_HID/Right_mouse_icon_9x9.png and b/assets/icons/BLE/BLE_HID/Right_mouse_icon_9x9.png differ diff --git a/assets/icons/BLE/BLE_HID/Space_65x18.png b/assets/icons/BLE/BLE_HID/Space_65x18.png index b60ae5097..eb417f674 100644 Binary files a/assets/icons/BLE/BLE_HID/Space_65x18.png and b/assets/icons/BLE/BLE_HID/Space_65x18.png differ diff --git a/assets/icons/BLE/BLE_HID/Voldwn_6x6.png b/assets/icons/BLE/BLE_HID/Voldwn_6x6.png index d7a82a2df..d6d7e286a 100644 Binary files a/assets/icons/BLE/BLE_HID/Voldwn_6x6.png and b/assets/icons/BLE/BLE_HID/Voldwn_6x6.png differ diff --git a/assets/icons/BLE/BLE_HID/Volup_8x6.png b/assets/icons/BLE/BLE_HID/Volup_8x6.png index 4b7ec66d6..66477bc7b 100644 Binary files a/assets/icons/BLE/BLE_HID/Volup_8x6.png and b/assets/icons/BLE/BLE_HID/Volup_8x6.png differ diff --git a/assets/icons/BLE/BLE_Pairing_128x64.png b/assets/icons/BLE/BLE_Pairing_128x64.png index 34068c300..97800403f 100644 Binary files a/assets/icons/BLE/BLE_Pairing_128x64.png and b/assets/icons/BLE/BLE_Pairing_128x64.png differ diff --git a/assets/icons/BadUsb/Clock_18x18.png b/assets/icons/BadUsb/Clock_18x18.png index ab06d008e..71ba0274f 100644 Binary files a/assets/icons/BadUsb/Clock_18x18.png and b/assets/icons/BadUsb/Clock_18x18.png differ diff --git a/assets/icons/BadUsb/Error_18x18.png b/assets/icons/BadUsb/Error_18x18.png index 16a5a74d9..28de03da8 100644 Binary files a/assets/icons/BadUsb/Error_18x18.png and b/assets/icons/BadUsb/Error_18x18.png differ diff --git a/assets/icons/BadUsb/EviSmile1_18x21.png b/assets/icons/BadUsb/EviSmile1_18x21.png index 987af3258..1ba168c61 100644 Binary files a/assets/icons/BadUsb/EviSmile1_18x21.png and b/assets/icons/BadUsb/EviSmile1_18x21.png differ diff --git a/assets/icons/BadUsb/EviSmile2_18x21.png b/assets/icons/BadUsb/EviSmile2_18x21.png index 7e28c9f01..0318d425a 100644 Binary files a/assets/icons/BadUsb/EviSmile2_18x21.png and b/assets/icons/BadUsb/EviSmile2_18x21.png differ diff --git a/assets/icons/BadUsb/EviWaiting1_18x21.png b/assets/icons/BadUsb/EviWaiting1_18x21.png index d39d21733..82fc0f330 100644 Binary files a/assets/icons/BadUsb/EviWaiting1_18x21.png and b/assets/icons/BadUsb/EviWaiting1_18x21.png differ diff --git a/assets/icons/BadUsb/EviWaiting2_18x21.png b/assets/icons/BadUsb/EviWaiting2_18x21.png index 15ca088fd..7209d3581 100644 Binary files a/assets/icons/BadUsb/EviWaiting2_18x21.png and b/assets/icons/BadUsb/EviWaiting2_18x21.png differ diff --git a/assets/icons/BadUsb/Percent_10x14.png b/assets/icons/BadUsb/Percent_10x14.png index 677911fd4..97b304f1a 100644 Binary files a/assets/icons/BadUsb/Percent_10x14.png and b/assets/icons/BadUsb/Percent_10x14.png differ diff --git a/assets/icons/BadUsb/Smile_18x18.png b/assets/icons/BadUsb/Smile_18x18.png index d2aae0dc3..c0ff50c0b 100644 Binary files a/assets/icons/BadUsb/Smile_18x18.png and b/assets/icons/BadUsb/Smile_18x18.png differ diff --git a/assets/icons/BadUsb/UsbTree_48x22.png b/assets/icons/BadUsb/UsbTree_48x22.png index cc41b5b9a..33ce1bf5a 100644 Binary files a/assets/icons/BadUsb/UsbTree_48x22.png and b/assets/icons/BadUsb/UsbTree_48x22.png differ diff --git a/assets/icons/Common/ActiveConnection_50x64.png b/assets/icons/Common/ActiveConnection_50x64.png index 1d7686ddd..c5ebb8352 100644 Binary files a/assets/icons/Common/ActiveConnection_50x64.png and b/assets/icons/Common/ActiveConnection_50x64.png differ diff --git a/assets/icons/Common/ButtonCenter_7x7.png b/assets/icons/Common/ButtonCenter_7x7.png index a66461b22..e1e015ab5 100644 Binary files a/assets/icons/Common/ButtonCenter_7x7.png and b/assets/icons/Common/ButtonCenter_7x7.png differ diff --git a/assets/icons/Common/ButtonDown_7x4.png b/assets/icons/Common/ButtonDown_7x4.png index 2954bb6a6..0cda838e0 100644 Binary files a/assets/icons/Common/ButtonDown_7x4.png and b/assets/icons/Common/ButtonDown_7x4.png differ diff --git a/assets/icons/Common/ButtonLeftSmall_3x5.png b/assets/icons/Common/ButtonLeftSmall_3x5.png index 51411acaf..0fb7fb313 100644 Binary files a/assets/icons/Common/ButtonLeftSmall_3x5.png and b/assets/icons/Common/ButtonLeftSmall_3x5.png differ diff --git a/assets/icons/Common/ButtonLeft_4x7.png b/assets/icons/Common/ButtonLeft_4x7.png index 0b4655d43..7c43f3b04 100644 Binary files a/assets/icons/Common/ButtonLeft_4x7.png and b/assets/icons/Common/ButtonLeft_4x7.png differ diff --git a/assets/icons/Common/ButtonRightSmall_3x5.png b/assets/icons/Common/ButtonRightSmall_3x5.png index b9d5f87db..c25ba7261 100644 Binary files a/assets/icons/Common/ButtonRightSmall_3x5.png and b/assets/icons/Common/ButtonRightSmall_3x5.png differ diff --git a/assets/icons/Common/ButtonRight_4x7.png b/assets/icons/Common/ButtonRight_4x7.png index 8e1c74c1c..31de21c0e 100644 Binary files a/assets/icons/Common/ButtonRight_4x7.png and b/assets/icons/Common/ButtonRight_4x7.png differ diff --git a/assets/icons/Common/ButtonUp_7x4.png b/assets/icons/Common/ButtonUp_7x4.png index 1be79328b..48d0f9f01 100644 Binary files a/assets/icons/Common/ButtonUp_7x4.png and b/assets/icons/Common/ButtonUp_7x4.png differ diff --git a/assets/icons/Common/DFU_128x50.png b/assets/icons/Common/DFU_128x50.png index 951cdc198..256a61b6b 100644 Binary files a/assets/icons/Common/DFU_128x50.png and b/assets/icons/Common/DFU_128x50.png differ diff --git a/assets/icons/Common/Hashmark_7x7.png b/assets/icons/Common/Hashmark_7x7.png index 93fb147be..6ede005dd 100644 Binary files a/assets/icons/Common/Hashmark_7x7.png and b/assets/icons/Common/Hashmark_7x7.png differ diff --git a/assets/icons/Common/Loading_24/frame_01.png b/assets/icons/Common/Loading_24/frame_01.png index 9c49dcad1..7fafe05ca 100644 Binary files a/assets/icons/Common/Loading_24/frame_01.png and b/assets/icons/Common/Loading_24/frame_01.png differ diff --git a/assets/icons/Common/Loading_24/frame_02.png b/assets/icons/Common/Loading_24/frame_02.png index 93a59fe68..8684b4f34 100644 Binary files a/assets/icons/Common/Loading_24/frame_02.png and b/assets/icons/Common/Loading_24/frame_02.png differ diff --git a/assets/icons/Common/Loading_24/frame_03.png b/assets/icons/Common/Loading_24/frame_03.png index 7bb66fca0..01c99c56e 100644 Binary files a/assets/icons/Common/Loading_24/frame_03.png and b/assets/icons/Common/Loading_24/frame_03.png differ diff --git a/assets/icons/Common/Loading_24/frame_04.png b/assets/icons/Common/Loading_24/frame_04.png index adefde921..15019fbc6 100644 Binary files a/assets/icons/Common/Loading_24/frame_04.png and b/assets/icons/Common/Loading_24/frame_04.png differ diff --git a/assets/icons/Common/Loading_24/frame_05.png b/assets/icons/Common/Loading_24/frame_05.png index 80bf88e96..c144a72ed 100644 Binary files a/assets/icons/Common/Loading_24/frame_05.png and b/assets/icons/Common/Loading_24/frame_05.png differ diff --git a/assets/icons/Common/Loading_24/frame_06.png b/assets/icons/Common/Loading_24/frame_06.png index b768a7875..fe66f11c6 100644 Binary files a/assets/icons/Common/Loading_24/frame_06.png and b/assets/icons/Common/Loading_24/frame_06.png differ diff --git a/assets/icons/Common/Loading_24/frame_07.png b/assets/icons/Common/Loading_24/frame_07.png index 190d2edf3..a7843a35b 100644 Binary files a/assets/icons/Common/Loading_24/frame_07.png and b/assets/icons/Common/Loading_24/frame_07.png differ diff --git a/assets/icons/Common/More_data_placeholder_5x7.png b/assets/icons/Common/More_data_placeholder_5x7.png index 85025d9f0..bbfdae047 100644 Binary files a/assets/icons/Common/More_data_placeholder_5x7.png and b/assets/icons/Common/More_data_placeholder_5x7.png differ diff --git a/assets/icons/Common/Round_loader_8x8/frame_01.png b/assets/icons/Common/Round_loader_8x8/frame_01.png index a5dc239d8..b8db2a4b5 100644 Binary files a/assets/icons/Common/Round_loader_8x8/frame_01.png and b/assets/icons/Common/Round_loader_8x8/frame_01.png differ diff --git a/assets/icons/Common/Round_loader_8x8/frame_02.png b/assets/icons/Common/Round_loader_8x8/frame_02.png index 162d8a8f4..aa0f22a4c 100644 Binary files a/assets/icons/Common/Round_loader_8x8/frame_02.png and b/assets/icons/Common/Round_loader_8x8/frame_02.png differ diff --git a/assets/icons/Common/Round_loader_8x8/frame_03.png b/assets/icons/Common/Round_loader_8x8/frame_03.png index 5483e4734..cba466ef6 100644 Binary files a/assets/icons/Common/Round_loader_8x8/frame_03.png and b/assets/icons/Common/Round_loader_8x8/frame_03.png differ diff --git a/assets/icons/Common/Round_loader_8x8/frame_04.png b/assets/icons/Common/Round_loader_8x8/frame_04.png index ce2fbbd47..4e90ed650 100644 Binary files a/assets/icons/Common/Round_loader_8x8/frame_04.png and b/assets/icons/Common/Round_loader_8x8/frame_04.png differ diff --git a/assets/icons/Common/Round_loader_8x8/frame_05.png b/assets/icons/Common/Round_loader_8x8/frame_05.png index 8b786c029..ed319f764 100644 Binary files a/assets/icons/Common/Round_loader_8x8/frame_05.png and b/assets/icons/Common/Round_loader_8x8/frame_05.png differ diff --git a/assets/icons/Common/Warning_30x23.png b/assets/icons/Common/Warning_30x23.png index 5f7e02dd8..f307436f5 100644 Binary files a/assets/icons/Common/Warning_30x23.png and b/assets/icons/Common/Warning_30x23.png differ diff --git a/assets/icons/Common/arrow_nano_down.png b/assets/icons/Common/arrow_nano_down.png index da66350bd..244b022a5 100644 Binary files a/assets/icons/Common/arrow_nano_down.png and b/assets/icons/Common/arrow_nano_down.png differ diff --git a/assets/icons/Common/arrow_nano_up.png b/assets/icons/Common/arrow_nano_up.png index 4a1d5be85..ccaf88b6e 100644 Binary files a/assets/icons/Common/arrow_nano_up.png and b/assets/icons/Common/arrow_nano_up.png differ diff --git a/assets/icons/Dolphin/DolphinDone_80x58.png b/assets/icons/Dolphin/DolphinDone_80x58.png index 594d62d52..881aaa8d2 100644 Binary files a/assets/icons/Dolphin/DolphinDone_80x58.png and b/assets/icons/Dolphin/DolphinDone_80x58.png differ diff --git a/assets/icons/Dolphin/DolphinMafia_119x62.png b/assets/icons/Dolphin/DolphinMafia_119x62.png index 1bbbec84a..4d47ed5b1 100644 Binary files a/assets/icons/Dolphin/DolphinMafia_119x62.png and b/assets/icons/Dolphin/DolphinMafia_119x62.png differ diff --git a/assets/icons/Dolphin/DolphinReadingSuccess_59x63.png b/assets/icons/Dolphin/DolphinReadingSuccess_59x63.png index 46f559f65..1380d2dd7 100644 Binary files a/assets/icons/Dolphin/DolphinReadingSuccess_59x63.png and b/assets/icons/Dolphin/DolphinReadingSuccess_59x63.png differ diff --git a/assets/icons/Dolphin/DolphinSaved_92x58.png b/assets/icons/Dolphin/DolphinSaved_92x58.png index e8704295c..4d8195b80 100644 Binary files a/assets/icons/Dolphin/DolphinSaved_92x58.png and b/assets/icons/Dolphin/DolphinSaved_92x58.png differ diff --git a/assets/icons/Dolphin/DolphinSuccess_91x55.png b/assets/icons/Dolphin/DolphinSuccess_91x55.png index 80caeb203..1dc514db6 100644 Binary files a/assets/icons/Dolphin/DolphinSuccess_91x55.png and b/assets/icons/Dolphin/DolphinSuccess_91x55.png differ diff --git a/assets/icons/Dolphin/DolphinWait_59x54.png b/assets/icons/Dolphin/DolphinWait_59x54.png index bdf8171b8..b906916d2 100644 Binary files a/assets/icons/Dolphin/DolphinWait_59x54.png and b/assets/icons/Dolphin/DolphinWait_59x54.png differ diff --git a/assets/icons/Dolphin/WarningDolphinFlip_45x42.png b/assets/icons/Dolphin/WarningDolphinFlip_45x42.png index 2ba54afce..a2554eaa6 100644 Binary files a/assets/icons/Dolphin/WarningDolphinFlip_45x42.png and b/assets/icons/Dolphin/WarningDolphinFlip_45x42.png differ diff --git a/assets/icons/Dolphin/WarningDolphin_45x42.png b/assets/icons/Dolphin/WarningDolphin_45x42.png index d766ffbb4..310be0f70 100644 Binary files a/assets/icons/Dolphin/WarningDolphin_45x42.png and b/assets/icons/Dolphin/WarningDolphin_45x42.png differ diff --git a/assets/icons/ErasePin/Erase_pin_128x64.png b/assets/icons/ErasePin/Erase_pin_128x64.png index 92ca5f91c..847146b78 100644 Binary files a/assets/icons/ErasePin/Erase_pin_128x64.png and b/assets/icons/ErasePin/Erase_pin_128x64.png differ diff --git a/assets/icons/GPIO/ArrowUpEmpty_14x15.png b/assets/icons/GPIO/ArrowUpEmpty_14x15.png index 261c6d89e..01209712e 100644 Binary files a/assets/icons/GPIO/ArrowUpEmpty_14x15.png and b/assets/icons/GPIO/ArrowUpEmpty_14x15.png differ diff --git a/assets/icons/GPIO/ArrowUpFilled_14x15.png b/assets/icons/GPIO/ArrowUpFilled_14x15.png index fa35eb2f8..2c6dfd9cc 100644 Binary files a/assets/icons/GPIO/ArrowUpFilled_14x15.png and b/assets/icons/GPIO/ArrowUpFilled_14x15.png differ diff --git a/assets/icons/Infrared/InfraredArrowDown_4x8.png b/assets/icons/Infrared/InfraredArrowDown_4x8.png index 2ac7bcdbe..086fa43fb 100644 Binary files a/assets/icons/Infrared/InfraredArrowDown_4x8.png and b/assets/icons/Infrared/InfraredArrowDown_4x8.png differ diff --git a/assets/icons/Infrared/InfraredArrowUp_4x8.png b/assets/icons/Infrared/InfraredArrowUp_4x8.png index 4c9a16b3f..1be28a53a 100644 Binary files a/assets/icons/Infrared/InfraredArrowUp_4x8.png and b/assets/icons/Infrared/InfraredArrowUp_4x8.png differ diff --git a/assets/icons/Infrared/InfraredLearnShort_128x31.png b/assets/icons/Infrared/InfraredLearnShort_128x31.png index 783ad0877..cd71a69db 100644 Binary files a/assets/icons/Infrared/InfraredLearnShort_128x31.png and b/assets/icons/Infrared/InfraredLearnShort_128x31.png differ diff --git a/assets/icons/Infrared/celsius_24x23.png b/assets/icons/Infrared/celsius_24x23.png index 64d7a1db1..9a6c30c75 100644 Binary files a/assets/icons/Infrared/celsius_24x23.png and b/assets/icons/Infrared/celsius_24x23.png differ diff --git a/assets/icons/Infrared/celsius_hover_24x23.png b/assets/icons/Infrared/celsius_hover_24x23.png index 0488b40f5..f5eb3f4bd 100644 Binary files a/assets/icons/Infrared/celsius_hover_24x23.png and b/assets/icons/Infrared/celsius_hover_24x23.png differ diff --git a/assets/icons/Infrared/ch_down_24x21.png b/assets/icons/Infrared/ch_down_24x21.png index 8c3f81c3d..a3803c745 100644 Binary files a/assets/icons/Infrared/ch_down_24x21.png and b/assets/icons/Infrared/ch_down_24x21.png differ diff --git a/assets/icons/Infrared/ch_down_hover_24x21.png b/assets/icons/Infrared/ch_down_hover_24x21.png index 9b840f9ce..5320c82a7 100644 Binary files a/assets/icons/Infrared/ch_down_hover_24x21.png and b/assets/icons/Infrared/ch_down_hover_24x21.png differ diff --git a/assets/icons/Infrared/ch_text_31x34.png b/assets/icons/Infrared/ch_text_31x34.png index 30e0f584c..88f5c3890 100644 Binary files a/assets/icons/Infrared/ch_text_31x34.png and b/assets/icons/Infrared/ch_text_31x34.png differ diff --git a/assets/icons/Infrared/ch_up_24x21.png b/assets/icons/Infrared/ch_up_24x21.png index fa4074d12..356d124f6 100644 Binary files a/assets/icons/Infrared/ch_up_24x21.png and b/assets/icons/Infrared/ch_up_24x21.png differ diff --git a/assets/icons/Infrared/ch_up_hover_24x21.png b/assets/icons/Infrared/ch_up_hover_24x21.png index 944a973f4..bef0ab0cc 100644 Binary files a/assets/icons/Infrared/ch_up_hover_24x21.png and b/assets/icons/Infrared/ch_up_hover_24x21.png differ diff --git a/assets/icons/Infrared/cool_30x51.png b/assets/icons/Infrared/cool_30x51.png index 38a8014bd..5dd42782d 100644 Binary files a/assets/icons/Infrared/cool_30x51.png and b/assets/icons/Infrared/cool_30x51.png differ diff --git a/assets/icons/Infrared/dry_19x20.png b/assets/icons/Infrared/dry_19x20.png index c689c0675..aab1e650f 100644 Binary files a/assets/icons/Infrared/dry_19x20.png and b/assets/icons/Infrared/dry_19x20.png differ diff --git a/assets/icons/Infrared/dry_hover_19x20.png b/assets/icons/Infrared/dry_hover_19x20.png index 5b7196ae2..5cd1a2814 100644 Binary files a/assets/icons/Infrared/dry_hover_19x20.png and b/assets/icons/Infrared/dry_hover_19x20.png differ diff --git a/assets/icons/Infrared/dry_text_15x5.png b/assets/icons/Infrared/dry_text_15x5.png index 7696e1fc8..49e2d4ab5 100644 Binary files a/assets/icons/Infrared/dry_text_15x5.png and b/assets/icons/Infrared/dry_text_15x5.png differ diff --git a/assets/icons/Infrared/fahren_24x23.png b/assets/icons/Infrared/fahren_24x23.png index d6f55e806..df6ce92cf 100644 Binary files a/assets/icons/Infrared/fahren_24x23.png and b/assets/icons/Infrared/fahren_24x23.png differ diff --git a/assets/icons/Infrared/fahren_hover_24x23.png b/assets/icons/Infrared/fahren_hover_24x23.png index db922c557..9a1f73a08 100644 Binary files a/assets/icons/Infrared/fahren_hover_24x23.png and b/assets/icons/Infrared/fahren_hover_24x23.png differ diff --git a/assets/icons/Infrared/heat_30x51.png b/assets/icons/Infrared/heat_30x51.png index aca27c7c8..f702816d6 100644 Binary files a/assets/icons/Infrared/heat_30x51.png and b/assets/icons/Infrared/heat_30x51.png differ diff --git a/assets/icons/Infrared/hourglass0_24x24.png b/assets/icons/Infrared/hourglass0_24x24.png index a382d84e2..ce627b002 100644 Binary files a/assets/icons/Infrared/hourglass0_24x24.png and b/assets/icons/Infrared/hourglass0_24x24.png differ diff --git a/assets/icons/Infrared/hourglass1_24x24.png b/assets/icons/Infrared/hourglass1_24x24.png index b4cc7b462..ef048a7bd 100644 Binary files a/assets/icons/Infrared/hourglass1_24x24.png and b/assets/icons/Infrared/hourglass1_24x24.png differ diff --git a/assets/icons/Infrared/hourglass2_24x24.png b/assets/icons/Infrared/hourglass2_24x24.png index d2c3709f7..918bd79d8 100644 Binary files a/assets/icons/Infrared/hourglass2_24x24.png and b/assets/icons/Infrared/hourglass2_24x24.png differ diff --git a/assets/icons/Infrared/hourglass3_24x24.png b/assets/icons/Infrared/hourglass3_24x24.png index e7be1e995..dccaf46cd 100644 Binary files a/assets/icons/Infrared/hourglass3_24x24.png and b/assets/icons/Infrared/hourglass3_24x24.png differ diff --git a/assets/icons/Infrared/hourglass4_24x24.png b/assets/icons/Infrared/hourglass4_24x24.png index 49eee2f53..7ed58a5b4 100644 Binary files a/assets/icons/Infrared/hourglass4_24x24.png and b/assets/icons/Infrared/hourglass4_24x24.png differ diff --git a/assets/icons/Infrared/hourglass5_24x24.png b/assets/icons/Infrared/hourglass5_24x24.png index 90e1d4b4e..f3a3ed308 100644 Binary files a/assets/icons/Infrared/hourglass5_24x24.png and b/assets/icons/Infrared/hourglass5_24x24.png differ diff --git a/assets/icons/Infrared/hourglass6_24x24.png b/assets/icons/Infrared/hourglass6_24x24.png index e68c744f0..1383bbbb9 100644 Binary files a/assets/icons/Infrared/hourglass6_24x24.png and b/assets/icons/Infrared/hourglass6_24x24.png differ diff --git a/assets/icons/Infrared/max_24x23.png b/assets/icons/Infrared/max_24x23.png index d4163a65f..b7836abbf 100644 Binary files a/assets/icons/Infrared/max_24x23.png and b/assets/icons/Infrared/max_24x23.png differ diff --git a/assets/icons/Infrared/max_hover_24x23.png b/assets/icons/Infrared/max_hover_24x23.png index 65f97b0ce..f3e87a581 100644 Binary files a/assets/icons/Infrared/max_hover_24x23.png and b/assets/icons/Infrared/max_hover_24x23.png differ diff --git a/assets/icons/Infrared/mute_19x20.png b/assets/icons/Infrared/mute_19x20.png index 410e88ac2..d767e2f9c 100644 Binary files a/assets/icons/Infrared/mute_19x20.png and b/assets/icons/Infrared/mute_19x20.png differ diff --git a/assets/icons/Infrared/mute_hover_19x20.png b/assets/icons/Infrared/mute_hover_19x20.png index e9a5b3510..cf899b883 100644 Binary files a/assets/icons/Infrared/mute_hover_19x20.png and b/assets/icons/Infrared/mute_hover_19x20.png differ diff --git a/assets/icons/Infrared/mute_text_19x5.png b/assets/icons/Infrared/mute_text_19x5.png index fa2d042a6..62183e5ac 100644 Binary files a/assets/icons/Infrared/mute_text_19x5.png and b/assets/icons/Infrared/mute_text_19x5.png differ diff --git a/assets/icons/Infrared/next_19x20.png b/assets/icons/Infrared/next_19x20.png index 512b68745..6d48639b8 100644 Binary files a/assets/icons/Infrared/next_19x20.png and b/assets/icons/Infrared/next_19x20.png differ diff --git a/assets/icons/Infrared/next_hover_19x20.png b/assets/icons/Infrared/next_hover_19x20.png index c84bfdb90..006b92a09 100644 Binary files a/assets/icons/Infrared/next_hover_19x20.png and b/assets/icons/Infrared/next_hover_19x20.png differ diff --git a/assets/icons/Infrared/next_text_19x6.png b/assets/icons/Infrared/next_text_19x6.png index 74d53171f..8146e688d 100644 Binary files a/assets/icons/Infrared/next_text_19x6.png and b/assets/icons/Infrared/next_text_19x6.png differ diff --git a/assets/icons/Infrared/off_19x20.png b/assets/icons/Infrared/off_19x20.png index 6d68d7e6e..8c97c072e 100644 Binary files a/assets/icons/Infrared/off_19x20.png and b/assets/icons/Infrared/off_19x20.png differ diff --git a/assets/icons/Infrared/off_hover_19x20.png b/assets/icons/Infrared/off_hover_19x20.png index fddd3f917..98c384838 100644 Binary files a/assets/icons/Infrared/off_hover_19x20.png and b/assets/icons/Infrared/off_hover_19x20.png differ diff --git a/assets/icons/Infrared/off_text_12x5.png b/assets/icons/Infrared/off_text_12x5.png index 500adbf27..7ee27fc7a 100644 Binary files a/assets/icons/Infrared/off_text_12x5.png and b/assets/icons/Infrared/off_text_12x5.png differ diff --git a/assets/icons/Infrared/pause_19x20.png b/assets/icons/Infrared/pause_19x20.png index 99196d23b..f3fda0fc4 100644 Binary files a/assets/icons/Infrared/pause_19x20.png and b/assets/icons/Infrared/pause_19x20.png differ diff --git a/assets/icons/Infrared/pause_hover_19x20.png b/assets/icons/Infrared/pause_hover_19x20.png index 33e7d8eb2..465c150a9 100644 Binary files a/assets/icons/Infrared/pause_hover_19x20.png and b/assets/icons/Infrared/pause_hover_19x20.png differ diff --git a/assets/icons/Infrared/pause_text_23x5.png b/assets/icons/Infrared/pause_text_23x5.png index 72c7b0403..fd991be3b 100644 Binary files a/assets/icons/Infrared/pause_text_23x5.png and b/assets/icons/Infrared/pause_text_23x5.png differ diff --git a/assets/icons/Infrared/play_19x20.png b/assets/icons/Infrared/play_19x20.png index 880e977d2..cb1d4ad80 100644 Binary files a/assets/icons/Infrared/play_19x20.png and b/assets/icons/Infrared/play_19x20.png differ diff --git a/assets/icons/Infrared/play_hover_19x20.png b/assets/icons/Infrared/play_hover_19x20.png index 4c837a144..35ab01448 100644 Binary files a/assets/icons/Infrared/play_hover_19x20.png and b/assets/icons/Infrared/play_hover_19x20.png differ diff --git a/assets/icons/Infrared/play_text_19x5.png b/assets/icons/Infrared/play_text_19x5.png index c5f067bcf..375f8155e 100644 Binary files a/assets/icons/Infrared/play_text_19x5.png and b/assets/icons/Infrared/play_text_19x5.png differ diff --git a/assets/icons/Infrared/power_19x20.png b/assets/icons/Infrared/power_19x20.png index 12b927973..eef764158 100644 Binary files a/assets/icons/Infrared/power_19x20.png and b/assets/icons/Infrared/power_19x20.png differ diff --git a/assets/icons/Infrared/power_hover_19x20.png b/assets/icons/Infrared/power_hover_19x20.png index 3a41249ff..c8e30cafa 100644 Binary files a/assets/icons/Infrared/power_hover_19x20.png and b/assets/icons/Infrared/power_hover_19x20.png differ diff --git a/assets/icons/Infrared/power_text_24x5.png b/assets/icons/Infrared/power_text_24x5.png index 88fff8e33..8f2fda83a 100644 Binary files a/assets/icons/Infrared/power_text_24x5.png and b/assets/icons/Infrared/power_text_24x5.png differ diff --git a/assets/icons/Infrared/prev_19x20.png b/assets/icons/Infrared/prev_19x20.png index 8d17cec57..69ac3bccb 100644 Binary files a/assets/icons/Infrared/prev_19x20.png and b/assets/icons/Infrared/prev_19x20.png differ diff --git a/assets/icons/Infrared/prev_hover_19x20.png b/assets/icons/Infrared/prev_hover_19x20.png index be9dce700..51f5779f0 100644 Binary files a/assets/icons/Infrared/prev_hover_19x20.png and b/assets/icons/Infrared/prev_hover_19x20.png differ diff --git a/assets/icons/Infrared/prev_text_19x5.png b/assets/icons/Infrared/prev_text_19x5.png index 473b89745..115887bbe 100644 Binary files a/assets/icons/Infrared/prev_text_19x5.png and b/assets/icons/Infrared/prev_text_19x5.png differ diff --git a/assets/icons/Infrared/vol_ac_text_30x30.png b/assets/icons/Infrared/vol_ac_text_30x30.png index 068266d62..2286627c8 100644 Binary files a/assets/icons/Infrared/vol_ac_text_30x30.png and b/assets/icons/Infrared/vol_ac_text_30x30.png differ diff --git a/assets/icons/Infrared/vol_tv_text_29x34.png b/assets/icons/Infrared/vol_tv_text_29x34.png index caef54c25..166cbdce6 100644 Binary files a/assets/icons/Infrared/vol_tv_text_29x34.png and b/assets/icons/Infrared/vol_tv_text_29x34.png differ diff --git a/assets/icons/Infrared/voldown_24x21.png b/assets/icons/Infrared/voldown_24x21.png index a80c59594..d6f8d2f32 100644 Binary files a/assets/icons/Infrared/voldown_24x21.png and b/assets/icons/Infrared/voldown_24x21.png differ diff --git a/assets/icons/Infrared/voldown_hover_24x21.png b/assets/icons/Infrared/voldown_hover_24x21.png index 6bc57c70e..b9ac48b4e 100644 Binary files a/assets/icons/Infrared/voldown_hover_24x21.png and b/assets/icons/Infrared/voldown_hover_24x21.png differ diff --git a/assets/icons/Infrared/volup_24x21.png b/assets/icons/Infrared/volup_24x21.png index 688552751..ebc3f3e42 100644 Binary files a/assets/icons/Infrared/volup_24x21.png and b/assets/icons/Infrared/volup_24x21.png differ diff --git a/assets/icons/Infrared/volup_hover_24x21.png b/assets/icons/Infrared/volup_hover_24x21.png index 5d790e796..1d35173d1 100644 Binary files a/assets/icons/Infrared/volup_hover_24x21.png and b/assets/icons/Infrared/volup_hover_24x21.png differ diff --git a/assets/icons/Interface/DoorLeft_70x55.png b/assets/icons/Interface/DoorLeft_70x55.png index 5df87ba3c..6f795c5e0 100644 Binary files a/assets/icons/Interface/DoorLeft_70x55.png and b/assets/icons/Interface/DoorLeft_70x55.png differ diff --git a/assets/icons/Interface/DoorRight_70x55.png b/assets/icons/Interface/DoorRight_70x55.png index 0cc1e65e6..01abc3865 100644 Binary files a/assets/icons/Interface/DoorRight_70x55.png and b/assets/icons/Interface/DoorRight_70x55.png differ diff --git a/assets/icons/Interface/SmallArrowDown_3x5.png b/assets/icons/Interface/SmallArrowDown_3x5.png index 1912e5d24..e795d6708 100644 Binary files a/assets/icons/Interface/SmallArrowDown_3x5.png and b/assets/icons/Interface/SmallArrowDown_3x5.png differ diff --git a/assets/icons/Interface/SmallArrowDown_4x7.png b/assets/icons/Interface/SmallArrowDown_4x7.png index 5c5252b16..0cda838e0 100644 Binary files a/assets/icons/Interface/SmallArrowDown_4x7.png and b/assets/icons/Interface/SmallArrowDown_4x7.png differ diff --git a/assets/icons/Interface/SmallArrowUp_3x5.png b/assets/icons/Interface/SmallArrowUp_3x5.png index 9c6242078..4a4dc8a77 100644 Binary files a/assets/icons/Interface/SmallArrowUp_3x5.png and b/assets/icons/Interface/SmallArrowUp_3x5.png differ diff --git a/assets/icons/Interface/SmallArrowUp_4x7.png b/assets/icons/Interface/SmallArrowUp_4x7.png index 886369abc..48d0f9f01 100644 Binary files a/assets/icons/Interface/SmallArrowUp_4x7.png and b/assets/icons/Interface/SmallArrowUp_4x7.png differ diff --git a/assets/icons/Keyboard/KeyBackspaceSelected_16x9.png b/assets/icons/Keyboard/KeyBackspaceSelected_16x9.png index 7cc0759a8..1df3f7fc9 100644 Binary files a/assets/icons/Keyboard/KeyBackspaceSelected_16x9.png and b/assets/icons/Keyboard/KeyBackspaceSelected_16x9.png differ diff --git a/assets/icons/Keyboard/KeyBackspace_16x9.png b/assets/icons/Keyboard/KeyBackspace_16x9.png index 9946232d9..895124807 100644 Binary files a/assets/icons/Keyboard/KeyBackspace_16x9.png and b/assets/icons/Keyboard/KeyBackspace_16x9.png differ diff --git a/assets/icons/Keyboard/KeySaveBlockedSelected_24x11.png b/assets/icons/Keyboard/KeySaveBlockedSelected_24x11.png new file mode 100644 index 000000000..fe570a10c Binary files /dev/null and b/assets/icons/Keyboard/KeySaveBlockedSelected_24x11.png differ diff --git a/assets/icons/Keyboard/KeySaveBlocked_24x11.png b/assets/icons/Keyboard/KeySaveBlocked_24x11.png new file mode 100644 index 000000000..d67b294ad Binary files /dev/null and b/assets/icons/Keyboard/KeySaveBlocked_24x11.png differ diff --git a/assets/icons/Keyboard/KeySaveSelected_24x11.png b/assets/icons/Keyboard/KeySaveSelected_24x11.png index eeb3569d3..abfced776 100644 Binary files a/assets/icons/Keyboard/KeySaveSelected_24x11.png and b/assets/icons/Keyboard/KeySaveSelected_24x11.png differ diff --git a/assets/icons/Keyboard/KeySave_24x11.png b/assets/icons/Keyboard/KeySave_24x11.png index e7dba987a..f97838d95 100644 Binary files a/assets/icons/Keyboard/KeySave_24x11.png and b/assets/icons/Keyboard/KeySave_24x11.png differ diff --git a/assets/icons/Keyboard/KeySignSelected_21x11.png b/assets/icons/Keyboard/KeySignSelected_21x11.png new file mode 100644 index 000000000..23ec2a9c4 Binary files /dev/null and b/assets/icons/Keyboard/KeySignSelected_21x11.png differ diff --git a/assets/icons/Keyboard/KeySign_21x11.png b/assets/icons/Keyboard/KeySign_21x11.png new file mode 100644 index 000000000..f31e9e0fa Binary files /dev/null and b/assets/icons/Keyboard/KeySign_21x11.png differ diff --git a/assets/icons/Loader/err_01.png b/assets/icons/Loader/err_01.png index 7ffdf761d..f8a43d892 100644 Binary files a/assets/icons/Loader/err_01.png and b/assets/icons/Loader/err_01.png differ diff --git a/assets/icons/Loader/err_02.png b/assets/icons/Loader/err_02.png index e00b1cb3b..94fab160f 100644 Binary files a/assets/icons/Loader/err_02.png and b/assets/icons/Loader/err_02.png differ diff --git a/assets/icons/Loader/err_03.png b/assets/icons/Loader/err_03.png index bb28c29ab..83b12af0a 100644 Binary files a/assets/icons/Loader/err_03.png and b/assets/icons/Loader/err_03.png differ diff --git a/assets/icons/Loader/err_04.png b/assets/icons/Loader/err_04.png index 40d9f9b9e..503652196 100644 Binary files a/assets/icons/Loader/err_04.png and b/assets/icons/Loader/err_04.png differ diff --git a/assets/icons/Loader/err_05.png b/assets/icons/Loader/err_05.png index c606f9a33..b639ba5d8 100644 Binary files a/assets/icons/Loader/err_05.png and b/assets/icons/Loader/err_05.png differ diff --git a/assets/icons/MainMenu/125khz_14/frame_01.png b/assets/icons/MainMenu/125khz_14/frame_01.png index 0f46d4262..d00392a1b 100644 Binary files a/assets/icons/MainMenu/125khz_14/frame_01.png and b/assets/icons/MainMenu/125khz_14/frame_01.png differ diff --git a/assets/icons/MainMenu/125khz_14/frame_02.png b/assets/icons/MainMenu/125khz_14/frame_02.png index 13c252b14..6ffd7fe16 100644 Binary files a/assets/icons/MainMenu/125khz_14/frame_02.png and b/assets/icons/MainMenu/125khz_14/frame_02.png differ diff --git a/assets/icons/MainMenu/125khz_14/frame_03.png b/assets/icons/MainMenu/125khz_14/frame_03.png index cdc882e7e..afd20d347 100644 Binary files a/assets/icons/MainMenu/125khz_14/frame_03.png and b/assets/icons/MainMenu/125khz_14/frame_03.png differ diff --git a/assets/icons/MainMenu/125khz_14/frame_04.png b/assets/icons/MainMenu/125khz_14/frame_04.png index bdbc7adf5..cf93c63f8 100644 Binary files a/assets/icons/MainMenu/125khz_14/frame_04.png and b/assets/icons/MainMenu/125khz_14/frame_04.png differ diff --git a/assets/icons/MainMenu/BadUsb_14/frame_01.png b/assets/icons/MainMenu/BadUsb_14/frame_01.png index 162753d8a..b2fb1d653 100644 Binary files a/assets/icons/MainMenu/BadUsb_14/frame_01.png and b/assets/icons/MainMenu/BadUsb_14/frame_01.png differ diff --git a/assets/icons/MainMenu/BadUsb_14/frame_02.png b/assets/icons/MainMenu/BadUsb_14/frame_02.png index 50e12f8ba..4060dc72f 100644 Binary files a/assets/icons/MainMenu/BadUsb_14/frame_02.png and b/assets/icons/MainMenu/BadUsb_14/frame_02.png differ diff --git a/assets/icons/MainMenu/BadUsb_14/frame_03.png b/assets/icons/MainMenu/BadUsb_14/frame_03.png index 5dafb2597..6b720f8a9 100644 Binary files a/assets/icons/MainMenu/BadUsb_14/frame_03.png and b/assets/icons/MainMenu/BadUsb_14/frame_03.png differ diff --git a/assets/icons/MainMenu/BadUsb_14/frame_04.png b/assets/icons/MainMenu/BadUsb_14/frame_04.png index 6ca08f842..f1931ef5e 100644 Binary files a/assets/icons/MainMenu/BadUsb_14/frame_04.png and b/assets/icons/MainMenu/BadUsb_14/frame_04.png differ diff --git a/assets/icons/MainMenu/BadUsb_14/frame_05.png b/assets/icons/MainMenu/BadUsb_14/frame_05.png index a3b06a0e7..8e32911da 100644 Binary files a/assets/icons/MainMenu/BadUsb_14/frame_05.png and b/assets/icons/MainMenu/BadUsb_14/frame_05.png differ diff --git a/assets/icons/MainMenu/BadUsb_14/frame_06.png b/assets/icons/MainMenu/BadUsb_14/frame_06.png index 7d8f43653..47e0a7a39 100644 Binary files a/assets/icons/MainMenu/BadUsb_14/frame_06.png and b/assets/icons/MainMenu/BadUsb_14/frame_06.png differ diff --git a/assets/icons/MainMenu/BadUsb_14/frame_07.png b/assets/icons/MainMenu/BadUsb_14/frame_07.png index a3b06a0e7..8e32911da 100644 Binary files a/assets/icons/MainMenu/BadUsb_14/frame_07.png and b/assets/icons/MainMenu/BadUsb_14/frame_07.png differ diff --git a/assets/icons/MainMenu/BadUsb_14/frame_08.png b/assets/icons/MainMenu/BadUsb_14/frame_08.png index 6ca08f842..f1931ef5e 100644 Binary files a/assets/icons/MainMenu/BadUsb_14/frame_08.png and b/assets/icons/MainMenu/BadUsb_14/frame_08.png differ diff --git a/assets/icons/MainMenu/BadUsb_14/frame_09.png b/assets/icons/MainMenu/BadUsb_14/frame_09.png index 5dafb2597..6b720f8a9 100644 Binary files a/assets/icons/MainMenu/BadUsb_14/frame_09.png and b/assets/icons/MainMenu/BadUsb_14/frame_09.png differ diff --git a/assets/icons/MainMenu/BadUsb_14/frame_10.png b/assets/icons/MainMenu/BadUsb_14/frame_10.png index 50e12f8ba..4060dc72f 100644 Binary files a/assets/icons/MainMenu/BadUsb_14/frame_10.png and b/assets/icons/MainMenu/BadUsb_14/frame_10.png differ diff --git a/assets/icons/MainMenu/BadUsb_14/frame_11.png b/assets/icons/MainMenu/BadUsb_14/frame_11.png index 162753d8a..b2fb1d653 100644 Binary files a/assets/icons/MainMenu/BadUsb_14/frame_11.png and b/assets/icons/MainMenu/BadUsb_14/frame_11.png differ diff --git a/assets/icons/MainMenu/Debug_14/frame_01.png b/assets/icons/MainMenu/Debug_14/frame_01.png index 59b61fea8..0f0cdad8c 100644 Binary files a/assets/icons/MainMenu/Debug_14/frame_01.png and b/assets/icons/MainMenu/Debug_14/frame_01.png differ diff --git a/assets/icons/MainMenu/Debug_14/frame_02.png b/assets/icons/MainMenu/Debug_14/frame_02.png index 93b4f950e..31a43bd69 100644 Binary files a/assets/icons/MainMenu/Debug_14/frame_02.png and b/assets/icons/MainMenu/Debug_14/frame_02.png differ diff --git a/assets/icons/MainMenu/Debug_14/frame_03.png b/assets/icons/MainMenu/Debug_14/frame_03.png index cf55953c8..a77b9de08 100644 Binary files a/assets/icons/MainMenu/Debug_14/frame_03.png and b/assets/icons/MainMenu/Debug_14/frame_03.png differ diff --git a/assets/icons/MainMenu/Debug_14/frame_04.png b/assets/icons/MainMenu/Debug_14/frame_04.png index 5f89c2e1b..74c7e7fe8 100644 Binary files a/assets/icons/MainMenu/Debug_14/frame_04.png and b/assets/icons/MainMenu/Debug_14/frame_04.png differ diff --git a/assets/icons/MainMenu/FileManager_14/frame_01.png b/assets/icons/MainMenu/FileManager_14/frame_01.png index 3403ec8a6..aaf107ae2 100644 Binary files a/assets/icons/MainMenu/FileManager_14/frame_01.png and b/assets/icons/MainMenu/FileManager_14/frame_01.png differ diff --git a/assets/icons/MainMenu/FileManager_14/frame_02.png b/assets/icons/MainMenu/FileManager_14/frame_02.png index 53cbfc541..c6faf6c29 100644 Binary files a/assets/icons/MainMenu/FileManager_14/frame_02.png and b/assets/icons/MainMenu/FileManager_14/frame_02.png differ diff --git a/assets/icons/MainMenu/FileManager_14/frame_03.png b/assets/icons/MainMenu/FileManager_14/frame_03.png index af4313708..fa7b04e78 100644 Binary files a/assets/icons/MainMenu/FileManager_14/frame_03.png and b/assets/icons/MainMenu/FileManager_14/frame_03.png differ diff --git a/assets/icons/MainMenu/FileManager_14/frame_04.png b/assets/icons/MainMenu/FileManager_14/frame_04.png index edeed16d5..d2909d00b 100644 Binary files a/assets/icons/MainMenu/FileManager_14/frame_04.png and b/assets/icons/MainMenu/FileManager_14/frame_04.png differ diff --git a/assets/icons/MainMenu/FileManager_14/frame_05.png b/assets/icons/MainMenu/FileManager_14/frame_05.png index 71e4f76a0..bdf66a9b6 100644 Binary files a/assets/icons/MainMenu/FileManager_14/frame_05.png and b/assets/icons/MainMenu/FileManager_14/frame_05.png differ diff --git a/assets/icons/MainMenu/FileManager_14/frame_06.png b/assets/icons/MainMenu/FileManager_14/frame_06.png index fd5e95020..49181b3c4 100644 Binary files a/assets/icons/MainMenu/FileManager_14/frame_06.png and b/assets/icons/MainMenu/FileManager_14/frame_06.png differ diff --git a/assets/icons/MainMenu/FileManager_14/frame_07.png b/assets/icons/MainMenu/FileManager_14/frame_07.png index 71e4f76a0..bdf66a9b6 100644 Binary files a/assets/icons/MainMenu/FileManager_14/frame_07.png and b/assets/icons/MainMenu/FileManager_14/frame_07.png differ diff --git a/assets/icons/MainMenu/FileManager_14/frame_08.png b/assets/icons/MainMenu/FileManager_14/frame_08.png index edeed16d5..d2909d00b 100644 Binary files a/assets/icons/MainMenu/FileManager_14/frame_08.png and b/assets/icons/MainMenu/FileManager_14/frame_08.png differ diff --git a/assets/icons/MainMenu/FileManager_14/frame_09.png b/assets/icons/MainMenu/FileManager_14/frame_09.png index af4313708..fa7b04e78 100644 Binary files a/assets/icons/MainMenu/FileManager_14/frame_09.png and b/assets/icons/MainMenu/FileManager_14/frame_09.png differ diff --git a/assets/icons/MainMenu/FileManager_14/frame_10.png b/assets/icons/MainMenu/FileManager_14/frame_10.png index 53cbfc541..c6faf6c29 100644 Binary files a/assets/icons/MainMenu/FileManager_14/frame_10.png and b/assets/icons/MainMenu/FileManager_14/frame_10.png differ diff --git a/assets/icons/MainMenu/GPIO_14/frame_01.png b/assets/icons/MainMenu/GPIO_14/frame_01.png index 23e27d59c..97c2ccaf2 100644 Binary files a/assets/icons/MainMenu/GPIO_14/frame_01.png and b/assets/icons/MainMenu/GPIO_14/frame_01.png differ diff --git a/assets/icons/MainMenu/GPIO_14/frame_02.png b/assets/icons/MainMenu/GPIO_14/frame_02.png index aa171cfaf..7e227af42 100644 Binary files a/assets/icons/MainMenu/GPIO_14/frame_02.png and b/assets/icons/MainMenu/GPIO_14/frame_02.png differ diff --git a/assets/icons/MainMenu/GPIO_14/frame_03.png b/assets/icons/MainMenu/GPIO_14/frame_03.png index 42fef0327..e2d7a420e 100644 Binary files a/assets/icons/MainMenu/GPIO_14/frame_03.png and b/assets/icons/MainMenu/GPIO_14/frame_03.png differ diff --git a/assets/icons/MainMenu/GPIO_14/frame_04.png b/assets/icons/MainMenu/GPIO_14/frame_04.png index 52ac41fb8..e801c88f5 100644 Binary files a/assets/icons/MainMenu/GPIO_14/frame_04.png and b/assets/icons/MainMenu/GPIO_14/frame_04.png differ diff --git a/assets/icons/MainMenu/GPIO_14/frame_05.png b/assets/icons/MainMenu/GPIO_14/frame_05.png index 30a259371..ebdc1382a 100644 Binary files a/assets/icons/MainMenu/GPIO_14/frame_05.png and b/assets/icons/MainMenu/GPIO_14/frame_05.png differ diff --git a/assets/icons/MainMenu/GPIO_14/frame_06.png b/assets/icons/MainMenu/GPIO_14/frame_06.png index be19567f3..5ebb0953f 100644 Binary files a/assets/icons/MainMenu/GPIO_14/frame_06.png and b/assets/icons/MainMenu/GPIO_14/frame_06.png differ diff --git a/assets/icons/MainMenu/GPIO_14/frame_07.png b/assets/icons/MainMenu/GPIO_14/frame_07.png index 2f7a42368..7138b727d 100644 Binary files a/assets/icons/MainMenu/GPIO_14/frame_07.png and b/assets/icons/MainMenu/GPIO_14/frame_07.png differ diff --git a/assets/icons/MainMenu/GPIO_14/frame_08.png b/assets/icons/MainMenu/GPIO_14/frame_08.png index aa4ad384d..a753127a8 100644 Binary files a/assets/icons/MainMenu/GPIO_14/frame_08.png and b/assets/icons/MainMenu/GPIO_14/frame_08.png differ diff --git a/assets/icons/MainMenu/Infrared_14/frame_01.png b/assets/icons/MainMenu/Infrared_14/frame_01.png index 63256dfff..b9ea5b6f9 100644 Binary files a/assets/icons/MainMenu/Infrared_14/frame_01.png and b/assets/icons/MainMenu/Infrared_14/frame_01.png differ diff --git a/assets/icons/MainMenu/Infrared_14/frame_02.png b/assets/icons/MainMenu/Infrared_14/frame_02.png index b31366d60..172c2eba7 100644 Binary files a/assets/icons/MainMenu/Infrared_14/frame_02.png and b/assets/icons/MainMenu/Infrared_14/frame_02.png differ diff --git a/assets/icons/MainMenu/Infrared_14/frame_03.png b/assets/icons/MainMenu/Infrared_14/frame_03.png index aed6b807c..8b6667b5b 100644 Binary files a/assets/icons/MainMenu/Infrared_14/frame_03.png and b/assets/icons/MainMenu/Infrared_14/frame_03.png differ diff --git a/assets/icons/MainMenu/Infrared_14/frame_04.png b/assets/icons/MainMenu/Infrared_14/frame_04.png index df7829408..bf2e55641 100644 Binary files a/assets/icons/MainMenu/Infrared_14/frame_04.png and b/assets/icons/MainMenu/Infrared_14/frame_04.png differ diff --git a/assets/icons/MainMenu/Infrared_14/frame_05.png b/assets/icons/MainMenu/Infrared_14/frame_05.png index bc1229a25..8a08e093c 100644 Binary files a/assets/icons/MainMenu/Infrared_14/frame_05.png and b/assets/icons/MainMenu/Infrared_14/frame_05.png differ diff --git a/assets/icons/MainMenu/Infrared_14/frame_06.png b/assets/icons/MainMenu/Infrared_14/frame_06.png index 711390213..50590d6bb 100644 Binary files a/assets/icons/MainMenu/Infrared_14/frame_06.png and b/assets/icons/MainMenu/Infrared_14/frame_06.png differ diff --git a/assets/icons/MainMenu/NFC_14/frame_01.png b/assets/icons/MainMenu/NFC_14/frame_01.png index 84b79da13..e96d0293c 100644 Binary files a/assets/icons/MainMenu/NFC_14/frame_01.png and b/assets/icons/MainMenu/NFC_14/frame_01.png differ diff --git a/assets/icons/MainMenu/NFC_14/frame_02.png b/assets/icons/MainMenu/NFC_14/frame_02.png index d8da3d730..7ba638842 100644 Binary files a/assets/icons/MainMenu/NFC_14/frame_02.png and b/assets/icons/MainMenu/NFC_14/frame_02.png differ diff --git a/assets/icons/MainMenu/NFC_14/frame_03.png b/assets/icons/MainMenu/NFC_14/frame_03.png index d33251fbf..442dde8ca 100644 Binary files a/assets/icons/MainMenu/NFC_14/frame_03.png and b/assets/icons/MainMenu/NFC_14/frame_03.png differ diff --git a/assets/icons/MainMenu/NFC_14/frame_04.png b/assets/icons/MainMenu/NFC_14/frame_04.png index 568151d7d..6a0b8acb9 100644 Binary files a/assets/icons/MainMenu/NFC_14/frame_04.png and b/assets/icons/MainMenu/NFC_14/frame_04.png differ diff --git a/assets/icons/MainMenu/Plugins_14/frame_01.png b/assets/icons/MainMenu/Plugins_14/frame_01.png index a3e192b83..bc7cc779a 100644 Binary files a/assets/icons/MainMenu/Plugins_14/frame_01.png and b/assets/icons/MainMenu/Plugins_14/frame_01.png differ diff --git a/assets/icons/MainMenu/Plugins_14/frame_02.png b/assets/icons/MainMenu/Plugins_14/frame_02.png index f025f2309..c914a3e9f 100644 Binary files a/assets/icons/MainMenu/Plugins_14/frame_02.png and b/assets/icons/MainMenu/Plugins_14/frame_02.png differ diff --git a/assets/icons/MainMenu/Plugins_14/frame_03.png b/assets/icons/MainMenu/Plugins_14/frame_03.png index f82dd553a..47a1473ff 100644 Binary files a/assets/icons/MainMenu/Plugins_14/frame_03.png and b/assets/icons/MainMenu/Plugins_14/frame_03.png differ diff --git a/assets/icons/MainMenu/Plugins_14/frame_04.png b/assets/icons/MainMenu/Plugins_14/frame_04.png index bc22d3b00..0230d16a7 100644 Binary files a/assets/icons/MainMenu/Plugins_14/frame_04.png and b/assets/icons/MainMenu/Plugins_14/frame_04.png differ diff --git a/assets/icons/MainMenu/Plugins_14/frame_05.png b/assets/icons/MainMenu/Plugins_14/frame_05.png index ddbe5f700..951816148 100644 Binary files a/assets/icons/MainMenu/Plugins_14/frame_05.png and b/assets/icons/MainMenu/Plugins_14/frame_05.png differ diff --git a/assets/icons/MainMenu/Plugins_14/frame_06.png b/assets/icons/MainMenu/Plugins_14/frame_06.png index 3ce0f8aca..affe37cfa 100644 Binary files a/assets/icons/MainMenu/Plugins_14/frame_06.png and b/assets/icons/MainMenu/Plugins_14/frame_06.png differ diff --git a/assets/icons/MainMenu/Plugins_14/frame_07.png b/assets/icons/MainMenu/Plugins_14/frame_07.png index 91a1125de..0ccf3f271 100644 Binary files a/assets/icons/MainMenu/Plugins_14/frame_07.png and b/assets/icons/MainMenu/Plugins_14/frame_07.png differ diff --git a/assets/icons/MainMenu/Plugins_14/frame_08.png b/assets/icons/MainMenu/Plugins_14/frame_08.png index c302db0ab..360cae32c 100644 Binary files a/assets/icons/MainMenu/Plugins_14/frame_08.png and b/assets/icons/MainMenu/Plugins_14/frame_08.png differ diff --git a/assets/icons/MainMenu/Plugins_14/frame_09.png b/assets/icons/MainMenu/Plugins_14/frame_09.png index 2be305721..15c2e0a8e 100644 Binary files a/assets/icons/MainMenu/Plugins_14/frame_09.png and b/assets/icons/MainMenu/Plugins_14/frame_09.png differ diff --git a/assets/icons/MainMenu/Settings_14/frame_01.png b/assets/icons/MainMenu/Settings_14/frame_01.png index aad9e3558..1f8f45ee1 100644 Binary files a/assets/icons/MainMenu/Settings_14/frame_01.png and b/assets/icons/MainMenu/Settings_14/frame_01.png differ diff --git a/assets/icons/MainMenu/Settings_14/frame_02.png b/assets/icons/MainMenu/Settings_14/frame_02.png index 124ffde21..8127986f3 100644 Binary files a/assets/icons/MainMenu/Settings_14/frame_02.png and b/assets/icons/MainMenu/Settings_14/frame_02.png differ diff --git a/assets/icons/MainMenu/Settings_14/frame_03.png b/assets/icons/MainMenu/Settings_14/frame_03.png index e4d72fe6f..0479bef21 100644 Binary files a/assets/icons/MainMenu/Settings_14/frame_03.png and b/assets/icons/MainMenu/Settings_14/frame_03.png differ diff --git a/assets/icons/MainMenu/Settings_14/frame_04.png b/assets/icons/MainMenu/Settings_14/frame_04.png index fec89bb85..192df5fdb 100644 Binary files a/assets/icons/MainMenu/Settings_14/frame_04.png and b/assets/icons/MainMenu/Settings_14/frame_04.png differ diff --git a/assets/icons/MainMenu/Settings_14/frame_05.png b/assets/icons/MainMenu/Settings_14/frame_05.png index fadaebc9f..5aaa83010 100644 Binary files a/assets/icons/MainMenu/Settings_14/frame_05.png and b/assets/icons/MainMenu/Settings_14/frame_05.png differ diff --git a/assets/icons/MainMenu/Settings_14/frame_06.png b/assets/icons/MainMenu/Settings_14/frame_06.png index 5b7b6423b..89082d7e2 100644 Binary files a/assets/icons/MainMenu/Settings_14/frame_06.png and b/assets/icons/MainMenu/Settings_14/frame_06.png differ diff --git a/assets/icons/MainMenu/Settings_14/frame_07.png b/assets/icons/MainMenu/Settings_14/frame_07.png index 6301512e8..424e68a08 100644 Binary files a/assets/icons/MainMenu/Settings_14/frame_07.png and b/assets/icons/MainMenu/Settings_14/frame_07.png differ diff --git a/assets/icons/MainMenu/Settings_14/frame_08.png b/assets/icons/MainMenu/Settings_14/frame_08.png index ce0611e34..347b760e9 100644 Binary files a/assets/icons/MainMenu/Settings_14/frame_08.png and b/assets/icons/MainMenu/Settings_14/frame_08.png differ diff --git a/assets/icons/MainMenu/Settings_14/frame_09.png b/assets/icons/MainMenu/Settings_14/frame_09.png index 11e93da37..64794e7ee 100644 Binary files a/assets/icons/MainMenu/Settings_14/frame_09.png and b/assets/icons/MainMenu/Settings_14/frame_09.png differ diff --git a/assets/icons/MainMenu/Settings_14/frame_10.png b/assets/icons/MainMenu/Settings_14/frame_10.png index aad9e3558..1f8f45ee1 100644 Binary files a/assets/icons/MainMenu/Settings_14/frame_10.png and b/assets/icons/MainMenu/Settings_14/frame_10.png differ diff --git a/assets/icons/MainMenu/Sub1ghz_14/frame_01.png b/assets/icons/MainMenu/Sub1ghz_14/frame_01.png index 52dc4ad21..ba1b89f9f 100644 Binary files a/assets/icons/MainMenu/Sub1ghz_14/frame_01.png and b/assets/icons/MainMenu/Sub1ghz_14/frame_01.png differ diff --git a/assets/icons/MainMenu/Sub1ghz_14/frame_02.png b/assets/icons/MainMenu/Sub1ghz_14/frame_02.png index 2dff1c031..c34b691bc 100644 Binary files a/assets/icons/MainMenu/Sub1ghz_14/frame_02.png and b/assets/icons/MainMenu/Sub1ghz_14/frame_02.png differ diff --git a/assets/icons/MainMenu/Sub1ghz_14/frame_03.png b/assets/icons/MainMenu/Sub1ghz_14/frame_03.png index c1e438b01..420e568ce 100644 Binary files a/assets/icons/MainMenu/Sub1ghz_14/frame_03.png and b/assets/icons/MainMenu/Sub1ghz_14/frame_03.png differ diff --git a/assets/icons/MainMenu/Sub1ghz_14/frame_04.png b/assets/icons/MainMenu/Sub1ghz_14/frame_04.png index 169fb6147..c40eee7b2 100644 Binary files a/assets/icons/MainMenu/Sub1ghz_14/frame_04.png and b/assets/icons/MainMenu/Sub1ghz_14/frame_04.png differ diff --git a/assets/icons/MainMenu/Sub1ghz_14/frame_05.png b/assets/icons/MainMenu/Sub1ghz_14/frame_05.png index 79b2bc972..08a6a6194 100644 Binary files a/assets/icons/MainMenu/Sub1ghz_14/frame_05.png and b/assets/icons/MainMenu/Sub1ghz_14/frame_05.png differ diff --git a/assets/icons/MainMenu/Sub1ghz_14/frame_06.png b/assets/icons/MainMenu/Sub1ghz_14/frame_06.png index 8fce0c44d..291fa8ace 100644 Binary files a/assets/icons/MainMenu/Sub1ghz_14/frame_06.png and b/assets/icons/MainMenu/Sub1ghz_14/frame_06.png differ diff --git a/assets/icons/MainMenu/U2F_14/frame_01.png b/assets/icons/MainMenu/U2F_14/frame_01.png index 6903a28b8..0dc3edfab 100644 Binary files a/assets/icons/MainMenu/U2F_14/frame_01.png and b/assets/icons/MainMenu/U2F_14/frame_01.png differ diff --git a/assets/icons/MainMenu/U2F_14/frame_02.png b/assets/icons/MainMenu/U2F_14/frame_02.png index e4bba739d..21dc5fa7d 100644 Binary files a/assets/icons/MainMenu/U2F_14/frame_02.png and b/assets/icons/MainMenu/U2F_14/frame_02.png differ diff --git a/assets/icons/MainMenu/U2F_14/frame_03.png b/assets/icons/MainMenu/U2F_14/frame_03.png index 4c903182c..d516bf7f6 100644 Binary files a/assets/icons/MainMenu/U2F_14/frame_03.png and b/assets/icons/MainMenu/U2F_14/frame_03.png differ diff --git a/assets/icons/MainMenu/U2F_14/frame_04.png b/assets/icons/MainMenu/U2F_14/frame_04.png index e4bba739d..21dc5fa7d 100644 Binary files a/assets/icons/MainMenu/U2F_14/frame_04.png and b/assets/icons/MainMenu/U2F_14/frame_04.png differ diff --git a/assets/icons/MainMenu/iButton_14/frame_01.png b/assets/icons/MainMenu/iButton_14/frame_01.png index d9f10748e..6e7398d86 100644 Binary files a/assets/icons/MainMenu/iButton_14/frame_01.png and b/assets/icons/MainMenu/iButton_14/frame_01.png differ diff --git a/assets/icons/MainMenu/iButton_14/frame_02.png b/assets/icons/MainMenu/iButton_14/frame_02.png index cf3422c03..531364566 100644 Binary files a/assets/icons/MainMenu/iButton_14/frame_02.png and b/assets/icons/MainMenu/iButton_14/frame_02.png differ diff --git a/assets/icons/MainMenu/iButton_14/frame_03.png b/assets/icons/MainMenu/iButton_14/frame_03.png index 1b0ed62e0..31354eeff 100644 Binary files a/assets/icons/MainMenu/iButton_14/frame_03.png and b/assets/icons/MainMenu/iButton_14/frame_03.png differ diff --git a/assets/icons/MainMenu/iButton_14/frame_04.png b/assets/icons/MainMenu/iButton_14/frame_04.png index 0caa9956b..78bc56178 100644 Binary files a/assets/icons/MainMenu/iButton_14/frame_04.png and b/assets/icons/MainMenu/iButton_14/frame_04.png differ diff --git a/assets/icons/MainMenu/iButton_14/frame_05.png b/assets/icons/MainMenu/iButton_14/frame_05.png index 79f217b96..82dbaedeb 100644 Binary files a/assets/icons/MainMenu/iButton_14/frame_05.png and b/assets/icons/MainMenu/iButton_14/frame_05.png differ diff --git a/assets/icons/MainMenu/iButton_14/frame_06.png b/assets/icons/MainMenu/iButton_14/frame_06.png index eabb2b190..5d7163d54 100644 Binary files a/assets/icons/MainMenu/iButton_14/frame_06.png and b/assets/icons/MainMenu/iButton_14/frame_06.png differ diff --git a/assets/icons/MainMenu/iButton_14/frame_07.png b/assets/icons/MainMenu/iButton_14/frame_07.png index 3a30aa7fb..3020c8105 100644 Binary files a/assets/icons/MainMenu/iButton_14/frame_07.png and b/assets/icons/MainMenu/iButton_14/frame_07.png differ diff --git a/assets/icons/NFC/ArrowC_1_36x36.png b/assets/icons/NFC/ArrowC_1_36x36.png index 3a0c6dd0c..0f4d3e1b2 100644 Binary files a/assets/icons/NFC/ArrowC_1_36x36.png and b/assets/icons/NFC/ArrowC_1_36x36.png differ diff --git a/assets/icons/NFC/Detailed_chip_17x13.png b/assets/icons/NFC/Detailed_chip_17x13.png index 9aaa1c555..71c56f60c 100644 Binary files a/assets/icons/NFC/Detailed_chip_17x13.png and b/assets/icons/NFC/Detailed_chip_17x13.png differ diff --git a/assets/icons/NFC/Keychain_39x36.png b/assets/icons/NFC/Keychain_39x36.png index d15850b5b..773f388d5 100644 Binary files a/assets/icons/NFC/Keychain_39x36.png and b/assets/icons/NFC/Keychain_39x36.png differ diff --git a/assets/icons/NFC/MFKey_qr_25x25.png b/assets/icons/NFC/MFKey_qr_25x25.png index feb07e280..7059260ea 100644 Binary files a/assets/icons/NFC/MFKey_qr_25x25.png and b/assets/icons/NFC/MFKey_qr_25x25.png differ diff --git a/assets/icons/NFC/Medium-chip-22x21.png b/assets/icons/NFC/Medium-chip-22x21.png index b1f15432d..28250ca9c 100644 Binary files a/assets/icons/NFC/Medium-chip-22x21.png and b/assets/icons/NFC/Medium-chip-22x21.png differ diff --git a/assets/icons/NFC/Modern_reader_18x34.png b/assets/icons/NFC/Modern_reader_18x34.png index b19c0f30c..aac13396a 100644 Binary files a/assets/icons/NFC/Modern_reader_18x34.png and b/assets/icons/NFC/Modern_reader_18x34.png differ diff --git a/assets/icons/NFC/Move_flipper_26x39.png b/assets/icons/NFC/Move_flipper_26x39.png index ff4af9ff0..981c17236 100644 Binary files a/assets/icons/NFC/Move_flipper_26x39.png and b/assets/icons/NFC/Move_flipper_26x39.png differ diff --git a/assets/icons/NFC/NFC_dolphin_emulation_51x64.png b/assets/icons/NFC/NFC_dolphin_emulation_51x64.png index ad5646d16..ef57f73c4 100644 Binary files a/assets/icons/NFC/NFC_dolphin_emulation_51x64.png and b/assets/icons/NFC/NFC_dolphin_emulation_51x64.png differ diff --git a/assets/icons/NFC/NFC_manual_60x50.png b/assets/icons/NFC/NFC_manual_60x50.png index 787c0bcfe..6a7f75499 100644 Binary files a/assets/icons/NFC/NFC_manual_60x50.png and b/assets/icons/NFC/NFC_manual_60x50.png differ diff --git a/assets/icons/NFC/Release_arrow_18x15.png b/assets/icons/NFC/Release_arrow_18x15.png index 187a90345..bd487fdb5 100644 Binary files a/assets/icons/NFC/Release_arrow_18x15.png and b/assets/icons/NFC/Release_arrow_18x15.png differ diff --git a/assets/icons/NFC/check_big_20x17.png b/assets/icons/NFC/check_big_20x17.png index 0e84cfa07..ddc7d3721 100644 Binary files a/assets/icons/NFC/check_big_20x17.png and b/assets/icons/NFC/check_big_20x17.png differ diff --git a/assets/icons/PIN/Pin_arrow_up_7x9.png b/assets/icons/PIN/Pin_arrow_up_7x9.png index a91a6fd5e..4e199c7d0 100644 Binary files a/assets/icons/PIN/Pin_arrow_up_7x9.png and b/assets/icons/PIN/Pin_arrow_up_7x9.png differ diff --git a/assets/icons/PIN/Pin_attention_dpad_29x29.png b/assets/icons/PIN/Pin_attention_dpad_29x29.png index 984db9cc7..65a2670a0 100644 Binary files a/assets/icons/PIN/Pin_attention_dpad_29x29.png and b/assets/icons/PIN/Pin_attention_dpad_29x29.png differ diff --git a/assets/icons/PIN/Pin_back_arrow_10x8.png b/assets/icons/PIN/Pin_back_arrow_10x8.png index 3bafabd14..64b25db5a 100644 Binary files a/assets/icons/PIN/Pin_back_arrow_10x8.png and b/assets/icons/PIN/Pin_back_arrow_10x8.png differ diff --git a/assets/icons/PIN/Pin_pointer_5x3.png b/assets/icons/PIN/Pin_pointer_5x3.png index edf3d41bb..4a4dc8a77 100644 Binary files a/assets/icons/PIN/Pin_pointer_5x3.png and b/assets/icons/PIN/Pin_pointer_5x3.png differ diff --git a/assets/icons/PIN/Pin_star_7x7.png b/assets/icons/PIN/Pin_star_7x7.png index 42fdea86e..3ab57222d 100644 Binary files a/assets/icons/PIN/Pin_star_7x7.png and b/assets/icons/PIN/Pin_star_7x7.png differ diff --git a/assets/icons/Passport/passport_bad1_46x49.png b/assets/icons/Passport/passport_bad1_46x49.png index 9b0e7c74e..94bce9c4b 100644 Binary files a/assets/icons/Passport/passport_bad1_46x49.png and b/assets/icons/Passport/passport_bad1_46x49.png differ diff --git a/assets/icons/Passport/passport_bad2_46x49.png b/assets/icons/Passport/passport_bad2_46x49.png index d11682ab8..890941257 100644 Binary files a/assets/icons/Passport/passport_bad2_46x49.png and b/assets/icons/Passport/passport_bad2_46x49.png differ diff --git a/assets/icons/Passport/passport_bad3_46x49.png b/assets/icons/Passport/passport_bad3_46x49.png index e39e6629d..ae21ac9ee 100644 Binary files a/assets/icons/Passport/passport_bad3_46x49.png and b/assets/icons/Passport/passport_bad3_46x49.png differ diff --git a/assets/icons/Passport/passport_bottom_128x18.png b/assets/icons/Passport/passport_bottom_128x18.png index 691ed8b4a..26d2fb53b 100644 Binary files a/assets/icons/Passport/passport_bottom_128x18.png and b/assets/icons/Passport/passport_bottom_128x18.png differ diff --git a/assets/icons/Passport/passport_happy1_46x49.png b/assets/icons/Passport/passport_happy1_46x49.png index 56ea000cd..4e58303cd 100644 Binary files a/assets/icons/Passport/passport_happy1_46x49.png and b/assets/icons/Passport/passport_happy1_46x49.png differ diff --git a/assets/icons/Passport/passport_happy2_46x49.png b/assets/icons/Passport/passport_happy2_46x49.png index f64e770e5..ba66d94fc 100644 Binary files a/assets/icons/Passport/passport_happy2_46x49.png and b/assets/icons/Passport/passport_happy2_46x49.png differ diff --git a/assets/icons/Passport/passport_happy3_46x49.png b/assets/icons/Passport/passport_happy3_46x49.png index 7aef17674..9f5e84571 100644 Binary files a/assets/icons/Passport/passport_happy3_46x49.png and b/assets/icons/Passport/passport_happy3_46x49.png differ diff --git a/assets/icons/Passport/passport_left_6x46.png b/assets/icons/Passport/passport_left_6x46.png index 17d3ad265..8e9d00b13 100644 Binary files a/assets/icons/Passport/passport_left_6x46.png and b/assets/icons/Passport/passport_left_6x46.png differ diff --git a/assets/icons/Passport/passport_okay1_46x49.png b/assets/icons/Passport/passport_okay1_46x49.png index 198ba5436..94b9dbf74 100644 Binary files a/assets/icons/Passport/passport_okay1_46x49.png and b/assets/icons/Passport/passport_okay1_46x49.png differ diff --git a/assets/icons/Passport/passport_okay2_46x49.png b/assets/icons/Passport/passport_okay2_46x49.png index 34fd3767b..62f39ba21 100644 Binary files a/assets/icons/Passport/passport_okay2_46x49.png and b/assets/icons/Passport/passport_okay2_46x49.png differ diff --git a/assets/icons/Passport/passport_okay3_46x49.png b/assets/icons/Passport/passport_okay3_46x49.png index e65da5b0e..d81f78819 100644 Binary files a/assets/icons/Passport/passport_okay3_46x49.png and b/assets/icons/Passport/passport_okay3_46x49.png differ diff --git a/assets/icons/Power/BatteryBody_52x28.png b/assets/icons/Power/BatteryBody_52x28.png index 1fe568346..7f32403da 100644 Binary files a/assets/icons/Power/BatteryBody_52x28.png and b/assets/icons/Power/BatteryBody_52x28.png differ diff --git a/assets/icons/Power/Battery_16x16.png b/assets/icons/Power/Battery_16x16.png index 49af3c225..d59b884fa 100644 Binary files a/assets/icons/Power/Battery_16x16.png and b/assets/icons/Power/Battery_16x16.png differ diff --git a/assets/icons/Power/FaceCharging_29x14.png b/assets/icons/Power/FaceCharging_29x14.png index 106ededbf..7ee7f7414 100644 Binary files a/assets/icons/Power/FaceCharging_29x14.png and b/assets/icons/Power/FaceCharging_29x14.png differ diff --git a/assets/icons/Power/FaceConfused_29x14.png b/assets/icons/Power/FaceConfused_29x14.png index dcd2e3c67..0f07c8725 100644 Binary files a/assets/icons/Power/FaceConfused_29x14.png and b/assets/icons/Power/FaceConfused_29x14.png differ diff --git a/assets/icons/Power/FaceNopower_29x14.png b/assets/icons/Power/FaceNopower_29x14.png index f3da0c8ca..df9028d44 100644 Binary files a/assets/icons/Power/FaceNopower_29x14.png and b/assets/icons/Power/FaceNopower_29x14.png differ diff --git a/assets/icons/Power/FaceNormal_29x14.png b/assets/icons/Power/FaceNormal_29x14.png index 52d78c086..84e5d031f 100644 Binary files a/assets/icons/Power/FaceNormal_29x14.png and b/assets/icons/Power/FaceNormal_29x14.png differ diff --git a/assets/icons/Power/Health_16x16.png b/assets/icons/Power/Health_16x16.png index af343c520..8ef39f64a 100644 Binary files a/assets/icons/Power/Health_16x16.png and b/assets/icons/Power/Health_16x16.png differ diff --git a/assets/icons/Power/Temperature_16x16.png b/assets/icons/Power/Temperature_16x16.png index aade43882..7add41383 100644 Binary files a/assets/icons/Power/Temperature_16x16.png and b/assets/icons/Power/Temperature_16x16.png differ diff --git a/assets/icons/Power/Unplug_bg_bottom_128x10.png b/assets/icons/Power/Unplug_bg_bottom_128x10.png index 35d73ba76..18fd7bf9c 100644 Binary files a/assets/icons/Power/Unplug_bg_bottom_128x10.png and b/assets/icons/Power/Unplug_bg_bottom_128x10.png differ diff --git a/assets/icons/Power/Unplug_bg_top_128x14.png b/assets/icons/Power/Unplug_bg_top_128x14.png index bafa2c494..e9b697104 100644 Binary files a/assets/icons/Power/Unplug_bg_top_128x14.png and b/assets/icons/Power/Unplug_bg_top_128x14.png differ diff --git a/assets/icons/Power/Voltage_16x16.png b/assets/icons/Power/Voltage_16x16.png index 94e796872..4484e3af7 100644 Binary files a/assets/icons/Power/Voltage_16x16.png and b/assets/icons/Power/Voltage_16x16.png differ diff --git a/assets/icons/RFID/RFIDDolphinReceive_97x61.png b/assets/icons/RFID/RFIDDolphinReceive_97x61.png index e1f5f9f80..06deb0a27 100644 Binary files a/assets/icons/RFID/RFIDDolphinReceive_97x61.png and b/assets/icons/RFID/RFIDDolphinReceive_97x61.png differ diff --git a/assets/icons/RFID/RFIDDolphinSend_97x61.png b/assets/icons/RFID/RFIDDolphinSend_97x61.png index 380a970d9..65dff8241 100644 Binary files a/assets/icons/RFID/RFIDDolphinSend_97x61.png and b/assets/icons/RFID/RFIDDolphinSend_97x61.png differ diff --git a/assets/icons/SDCard/SDQuestion_35x43.png b/assets/icons/SDCard/SDQuestion_35x43.png index 257ab1d85..a07a98e4b 100644 Binary files a/assets/icons/SDCard/SDQuestion_35x43.png and b/assets/icons/SDCard/SDQuestion_35x43.png differ diff --git a/assets/icons/Settings/LoadingHourglass_24x24.png b/assets/icons/Settings/LoadingHourglass_24x24.png index 9c49dcad1..7fafe05ca 100644 Binary files a/assets/icons/Settings/LoadingHourglass_24x24.png and b/assets/icons/Settings/LoadingHourglass_24x24.png differ diff --git a/assets/icons/Settings/dolph_cry_49x54.png b/assets/icons/Settings/dolph_cry_49x54.png index 351a849b0..1ebb69e3e 100644 Binary files a/assets/icons/Settings/dolph_cry_49x54.png and b/assets/icons/Settings/dolph_cry_49x54.png differ diff --git a/assets/icons/Settings/qr_benchmark_25x25.png b/assets/icons/Settings/qr_benchmark_25x25.png index c5f9df119..908821b6b 100644 Binary files a/assets/icons/Settings/qr_benchmark_25x25.png and b/assets/icons/Settings/qr_benchmark_25x25.png differ diff --git a/assets/icons/StatusBar/Alert_9x8.png b/assets/icons/StatusBar/Alert_9x8.png index d03f107ef..fe82828f6 100644 Binary files a/assets/icons/StatusBar/Alert_9x8.png and b/assets/icons/StatusBar/Alert_9x8.png differ diff --git a/assets/icons/StatusBar/Attention_5x8.png b/assets/icons/StatusBar/Attention_5x8.png index 137d4c4d0..225a56ee3 100644 Binary files a/assets/icons/StatusBar/Attention_5x8.png and b/assets/icons/StatusBar/Attention_5x8.png differ diff --git a/assets/icons/StatusBar/BLE_beacon_7x8.png b/assets/icons/StatusBar/BLE_beacon_7x8.png index e8480287c..9f955de83 100644 Binary files a/assets/icons/StatusBar/BLE_beacon_7x8.png and b/assets/icons/StatusBar/BLE_beacon_7x8.png differ diff --git a/assets/icons/StatusBar/Background_128x11.png b/assets/icons/StatusBar/Background_128x11.png index 78ef029ae..b2fe0bb97 100644 Binary files a/assets/icons/StatusBar/Background_128x11.png and b/assets/icons/StatusBar/Background_128x11.png differ diff --git a/assets/icons/StatusBar/Battery_26x8.png b/assets/icons/StatusBar/Battery_26x8.png index 5fc1b0cd6..a9fea1309 100644 Binary files a/assets/icons/StatusBar/Battery_26x8.png and b/assets/icons/StatusBar/Battery_26x8.png differ diff --git a/assets/icons/StatusBar/Bluetooth_Connected_16x8.png b/assets/icons/StatusBar/Bluetooth_Connected_16x8.png index c77bc1494..667c6d892 100644 Binary files a/assets/icons/StatusBar/Bluetooth_Connected_16x8.png and b/assets/icons/StatusBar/Bluetooth_Connected_16x8.png differ diff --git a/assets/icons/StatusBar/Bluetooth_Idle_5x8.png b/assets/icons/StatusBar/Bluetooth_Idle_5x8.png index dc4a8733c..8d7b05ca0 100644 Binary files a/assets/icons/StatusBar/Bluetooth_Idle_5x8.png and b/assets/icons/StatusBar/Bluetooth_Idle_5x8.png differ diff --git a/assets/icons/StatusBar/Charging-lightning_9x10.png b/assets/icons/StatusBar/Charging-lightning_9x10.png index c2eaa47d0..0e4629ff5 100644 Binary files a/assets/icons/StatusBar/Charging-lightning_9x10.png and b/assets/icons/StatusBar/Charging-lightning_9x10.png differ diff --git a/assets/icons/StatusBar/Charging-lightning_mask_9x10.png b/assets/icons/StatusBar/Charging-lightning_mask_9x10.png index d44a32ae0..9c0cc455c 100644 Binary files a/assets/icons/StatusBar/Charging-lightning_mask_9x10.png and b/assets/icons/StatusBar/Charging-lightning_mask_9x10.png differ diff --git a/assets/icons/StatusBar/Exp_module_connected_12x8.png b/assets/icons/StatusBar/Exp_module_connected_12x8.png index a5f096682..fc136087b 100644 Binary files a/assets/icons/StatusBar/Exp_module_connected_12x8.png and b/assets/icons/StatusBar/Exp_module_connected_12x8.png differ diff --git a/assets/icons/StatusBar/GameMode_11x8.png b/assets/icons/StatusBar/GameMode_11x8.png index 49f2e25bf..88f1a87c1 100644 Binary files a/assets/icons/StatusBar/GameMode_11x8.png and b/assets/icons/StatusBar/GameMode_11x8.png differ diff --git a/assets/icons/StatusBar/Hidden_window_9x8.png b/assets/icons/StatusBar/Hidden_window_9x8.png index d6fc2b326..7fce0d5f6 100644 Binary files a/assets/icons/StatusBar/Hidden_window_9x8.png and b/assets/icons/StatusBar/Hidden_window_9x8.png differ diff --git a/assets/icons/StatusBar/Muted_8x8.png b/assets/icons/StatusBar/Muted_8x8.png index fee4e09f5..8d35be7fa 100644 Binary files a/assets/icons/StatusBar/Muted_8x8.png and b/assets/icons/StatusBar/Muted_8x8.png differ diff --git a/assets/icons/StatusBar/Rpc_active_7x8.png b/assets/icons/StatusBar/Rpc_active_7x8.png index f643a82aa..75ab10b4b 100644 Binary files a/assets/icons/StatusBar/Rpc_active_7x8.png and b/assets/icons/StatusBar/Rpc_active_7x8.png differ diff --git a/assets/icons/StatusBar/SDcardFail_11x8.png b/assets/icons/StatusBar/SDcardFail_11x8.png index 876cfa229..cad9c4fcc 100644 Binary files a/assets/icons/StatusBar/SDcardFail_11x8.png and b/assets/icons/StatusBar/SDcardFail_11x8.png differ diff --git a/assets/icons/StatusBar/SDcardMounted_11x8.png b/assets/icons/StatusBar/SDcardMounted_11x8.png index 68bc61921..3a3227adb 100644 Binary files a/assets/icons/StatusBar/SDcardMounted_11x8.png and b/assets/icons/StatusBar/SDcardMounted_11x8.png differ diff --git a/assets/icons/SubGhz/Lock_7x8.png b/assets/icons/SubGhz/Lock_7x8.png index f7c9ca2c7..df07af6b8 100644 Binary files a/assets/icons/SubGhz/Lock_7x8.png and b/assets/icons/SubGhz/Lock_7x8.png differ diff --git a/assets/icons/SubGhz/MHz_25x11.png b/assets/icons/SubGhz/MHz_25x11.png index b99554956..2dae11a7e 100644 Binary files a/assets/icons/SubGhz/MHz_25x11.png and b/assets/icons/SubGhz/MHz_25x11.png differ diff --git a/assets/icons/SubGhz/Quest_7x8.png b/assets/icons/SubGhz/Quest_7x8.png index 6825247fb..95b4a7907 100644 Binary files a/assets/icons/SubGhz/Quest_7x8.png and b/assets/icons/SubGhz/Quest_7x8.png differ diff --git a/assets/icons/SubGhz/Unlock_7x8.png b/assets/icons/SubGhz/Unlock_7x8.png index 9d82b4daf..da11e49cb 100644 Binary files a/assets/icons/SubGhz/Unlock_7x8.png and b/assets/icons/SubGhz/Unlock_7x8.png differ diff --git a/assets/icons/U2F/Auth_62x31.png b/assets/icons/U2F/Auth_62x31.png index 40f094ac9..0c22865b2 100644 Binary files a/assets/icons/U2F/Auth_62x31.png and b/assets/icons/U2F/Auth_62x31.png differ diff --git a/assets/icons/U2F/Connect_me_62x31.png b/assets/icons/U2F/Connect_me_62x31.png index 68c48c0e6..d7def86b0 100644 Binary files a/assets/icons/U2F/Connect_me_62x31.png and b/assets/icons/U2F/Connect_me_62x31.png differ diff --git a/assets/icons/U2F/Connected_62x31.png b/assets/icons/U2F/Connected_62x31.png index eeaf660b1..ee415989d 100644 Binary files a/assets/icons/U2F/Connected_62x31.png and b/assets/icons/U2F/Connected_62x31.png differ diff --git a/assets/icons/U2F/Drive_112x35.png b/assets/icons/U2F/Drive_112x35.png index 6f7b9c834..b910c7920 100644 Binary files a/assets/icons/U2F/Drive_112x35.png and b/assets/icons/U2F/Drive_112x35.png differ diff --git a/assets/icons/U2F/Error_62x31.png b/assets/icons/U2F/Error_62x31.png index bb280e751..c8b3b7a30 100644 Binary files a/assets/icons/U2F/Error_62x31.png and b/assets/icons/U2F/Error_62x31.png differ diff --git a/assets/icons/Update/Updating_32x40.png b/assets/icons/Update/Updating_32x40.png index d8f7654b8..ed1507323 100644 Binary files a/assets/icons/Update/Updating_32x40.png and b/assets/icons/Update/Updating_32x40.png differ diff --git a/assets/icons/iButton/iButtonDolphinVerySuccess_92x55.png b/assets/icons/iButton/iButtonDolphinVerySuccess_92x55.png index 0a85465cc..0d8263c5e 100644 Binary files a/assets/icons/iButton/iButtonDolphinVerySuccess_92x55.png and b/assets/icons/iButton/iButtonDolphinVerySuccess_92x55.png differ diff --git a/assets/icons/iButton/iButtonKey_49x44.png b/assets/icons/iButton/iButtonKey_49x44.png index db895ec52..d3bf6e20f 100644 Binary files a/assets/icons/iButton/iButtonKey_49x44.png and b/assets/icons/iButton/iButtonKey_49x44.png differ diff --git a/assets/slideshow/first_start/frame_00.png b/assets/slideshow/first_start/frame_00.png index 67f23bd31..b464e0c55 100644 Binary files a/assets/slideshow/first_start/frame_00.png and b/assets/slideshow/first_start/frame_00.png differ diff --git a/assets/slideshow/first_start/frame_01.png b/assets/slideshow/first_start/frame_01.png index 5ac995c39..5687e44df 100644 Binary files a/assets/slideshow/first_start/frame_01.png and b/assets/slideshow/first_start/frame_01.png differ diff --git a/assets/slideshow/first_start/frame_02.png b/assets/slideshow/first_start/frame_02.png index adff6af66..f9d1fafb7 100644 Binary files a/assets/slideshow/first_start/frame_02.png and b/assets/slideshow/first_start/frame_02.png differ diff --git a/assets/slideshow/first_start/frame_03.png b/assets/slideshow/first_start/frame_03.png index bd6ae73f7..c8fc8e1b0 100644 Binary files a/assets/slideshow/first_start/frame_03.png and b/assets/slideshow/first_start/frame_03.png differ diff --git a/assets/slideshow/first_start/frame_04.png b/assets/slideshow/first_start/frame_04.png index 59f62dcc7..942eded49 100644 Binary files a/assets/slideshow/first_start/frame_04.png and b/assets/slideshow/first_start/frame_04.png differ diff --git a/assets/slideshow/first_start/frame_05.png b/assets/slideshow/first_start/frame_05.png index 3682c6d0c..2df80976a 100644 Binary files a/assets/slideshow/first_start/frame_05.png and b/assets/slideshow/first_start/frame_05.png differ diff --git a/documentation/fbt.md b/documentation/fbt.md index a8759f8eb..4009822f8 100644 --- a/documentation/fbt.md +++ b/documentation/fbt.md @@ -101,6 +101,8 @@ Currently `fbt` supports the default language server (`cpptools`) and `clangd`. - `get_stlink` - output serial numbers for attached STLink probes. Used for specifying an adapter with `SWD_TRANSPORT_SERIAL=...`. - `lint`, `format` - run `clang-format` on the C source code to check and reformat it according to the `.clang-format` specs. Supports `ARGS="..."` to pass extra arguments to clang-format. - `lint_py`, `format_py` - run [black](https://black.readthedocs.io/en/stable/index.html) on the Python source code, build system files & application manifests. Supports `ARGS="..."` to pass extra arguments to black. +- `lint_img`, `format_img` - check the image assets for errors and format them. Enforces color depth and strips metadata. +- `lint_all`, `format_all` - run all linters and formatters. - `firmware_pvs` - generate a PVS Studio report for the firmware. Requires PVS Studio to be available on your system's `PATH`. - `doxygen` - generate Doxygen documentation for the firmware. `doxy` target also opens web browser to view the generated documentation. - `cli` - start a Flipper CLI session over USB. diff --git a/furi/core/string.c b/furi/core/string.c index f3e40fe5e..804445e22 100644 --- a/furi/core/string.c +++ b/furi/core/string.c @@ -17,6 +17,7 @@ struct FuriString { #undef furi_string_replace_all #undef furi_string_start_with #undef furi_string_end_with +#undef furi_string_end_withi #undef furi_string_search_char #undef furi_string_search_rchar #undef furi_string_trim @@ -218,10 +219,28 @@ bool furi_string_end_with(const FuriString* v, const FuriString* v2) { return string_end_with_string_p(v->string, v2->string); } +bool furi_string_end_withi(const FuriString* v, const FuriString* v2) { + return furi_string_end_withi_str(v, string_get_cstr(v2->string)); +} + bool furi_string_end_with_str(const FuriString* v, const char str[]) { return string_end_with_str_p(v->string, str); } +bool furi_string_end_withi_str(const FuriString* v, const char str[]) { + M_STR1NG_CONTRACT(v); + M_ASSERT(str != NULL); + + const size_t str_len = strlen(str); + const size_t v_len = string_size(v->string); + + if(v_len < str_len) { + return false; + } + + return strcasecmp(&string_get_cstr(v->string)[v_len - str_len], str) == 0; +} + size_t furi_string_search_char(const FuriString* v, char c, size_t start) { return string_search_char(v->string, c, start); } diff --git a/furi/core/string.h b/furi/core/string.h index 2bfb60e49..84b8c6a24 100644 --- a/furi/core/string.h +++ b/furi/core/string.h @@ -510,6 +510,15 @@ bool furi_string_start_with_str(const FuriString* string, const char start[]); */ bool furi_string_end_with(const FuriString* string, const FuriString* end); +/** Test if the string ends with the given string (case insensitive according to the current locale). + * + * @param string The FuriString instance + * @param end The end + * + * @return true if string ends with + */ +bool furi_string_end_withi(const FuriString* string, const FuriString* end); + /** Test if the string ends with the given C string. * * @param string The FuriString instance @@ -519,6 +528,15 @@ bool furi_string_end_with(const FuriString* string, const FuriString* end); */ bool furi_string_end_with_str(const FuriString* string, const char end[]); +/** Test if the string ends with the given C string (case insensitive according to the current locale). + * + * @param string The FuriString instance + * @param end The end + * + * @return true if string ends with + */ +bool furi_string_end_withi_str(const FuriString* string, const char end[]); + //--------------------------------------------------------------------------- // Trim //--------------------------------------------------------------------------- @@ -699,6 +717,13 @@ void furi_string_utf8_decode(char c, FuriStringUTF8State* state, FuriStringUnico #define furi_string_end_with(a, b) \ FURI_STRING_SELECT2(furi_string_end_with, furi_string_end_with_str, a, b) +/** Test if the string ends with the given string (or C string) (case insensitive according to the current locale). + * + * (string, [c]string) + */ +#define furi_string_end_withi(a, b) \ + FURI_STRING_SELECT2(furi_string_end_withi, furi_string_end_withi_str, a, b) + /** Append a string (or C string) to the string. * * (string, [c]string) diff --git a/lib/drivers/st25r3916.c b/lib/drivers/st25r3916.c index 477261213..f8dc9a5eb 100644 --- a/lib/drivers/st25r3916.c +++ b/lib/drivers/st25r3916.c @@ -57,9 +57,12 @@ bool st25r3916_read_fifo( do { uint8_t fifo_status[2] = {}; st25r3916_read_burst_regs(handle, ST25R3916_REG_FIFO_STATUS1, fifo_status, 2); - size_t bytes = ((fifo_status[1] & ST25R3916_REG_FIFO_STATUS2_fifo_b_mask) >> - ST25R3916_REG_FIFO_STATUS2_fifo_b_shift) | - fifo_status[0]; + + uint16_t fifo_status_b9_b8 = + ((fifo_status[1] & ST25R3916_REG_FIFO_STATUS2_fifo_b_mask) >> + ST25R3916_REG_FIFO_STATUS2_fifo_b_shift); + size_t bytes = (fifo_status_b9_b8 << 8) | fifo_status[0]; + uint8_t bits = ((fifo_status[1] & ST25R3916_REG_FIFO_STATUS2_fifo_lb_mask) >> ST25R3916_REG_FIFO_STATUS2_fifo_lb_shift); diff --git a/lib/subghz/protocols/dickert_mahs.c b/lib/subghz/protocols/dickert_mahs.c new file mode 100644 index 000000000..4691e3423 --- /dev/null +++ b/lib/subghz/protocols/dickert_mahs.c @@ -0,0 +1,385 @@ +#include "dickert_mahs.h" + +#include "../blocks/const.h" +#include "../blocks/decoder.h" +#include "../blocks/encoder.h" +#include "../blocks/generic.h" +#include "../blocks/math.h" + +#include +#include +#include + +#define TAG "SubGhzProtocolDicketMAHS" + +static const SubGhzBlockConst subghz_protocol_dickert_mahs_const = { + .te_short = 400, + .te_long = 800, + .te_delta = 100, + .min_count_bit_for_found = 36, +}; + +struct SubGhzProtocolDecoderDickertMAHS { + SubGhzProtocolDecoderBase base; + + SubGhzBlockDecoder decoder; + SubGhzBlockGeneric generic; + + uint32_t tmp[2]; + uint8_t tmp_cnt; +}; + +struct SubGhzProtocolEncoderDickertMAHS { + SubGhzProtocolEncoderBase base; + + SubGhzProtocolBlockEncoder encoder; + SubGhzBlockGeneric generic; +}; + +typedef enum { + DickertMAHSDecoderStepReset = 0, + DickertMAHSDecoderStepInitial, + DickertMAHSDecoderStepRecording, +} DickertMAHSDecoderStep; + +const SubGhzProtocolDecoder subghz_protocol_dickert_mahs_decoder = { + .alloc = subghz_protocol_decoder_dickert_mahs_alloc, + .free = subghz_protocol_decoder_dickert_mahs_free, + + .feed = subghz_protocol_decoder_dickert_mahs_feed, + .reset = subghz_protocol_decoder_dickert_mahs_reset, + + .get_hash_data = subghz_protocol_decoder_dickert_mahs_get_hash_data, + .serialize = subghz_protocol_decoder_dickert_mahs_serialize, + .deserialize = subghz_protocol_decoder_dickert_mahs_deserialize, + .get_string = subghz_protocol_decoder_dickert_mahs_get_string, +}; + +const SubGhzProtocolEncoder subghz_protocol_dickert_mahs_encoder = { + .alloc = subghz_protocol_encoder_dickert_mahs_alloc, + .free = subghz_protocol_encoder_dickert_mahs_free, + + .deserialize = subghz_protocol_encoder_dickert_mahs_deserialize, + .stop = subghz_protocol_encoder_dickert_mahs_stop, + .yield = subghz_protocol_encoder_dickert_mahs_yield, +}; + +const SubGhzProtocol subghz_protocol_dickert_mahs = { + .name = SUBGHZ_PROTOCOL_DICKERT_MAHS_NAME, + .type = SubGhzProtocolTypeStatic, + .flag = SubGhzProtocolFlag_433 | SubGhzProtocolFlag_AM | SubGhzProtocolFlag_Decodable | + SubGhzProtocolFlag_Load | SubGhzProtocolFlag_Save | SubGhzProtocolFlag_Send, + + .decoder = &subghz_protocol_dickert_mahs_decoder, + .encoder = &subghz_protocol_dickert_mahs_encoder, +}; + +static void subghz_protocol_encoder_dickert_mahs_parse_buffer( + SubGhzProtocolDecoderDickertMAHS* instance, + FuriString* output) { + // We assume we have only decodes < 64 bit! + uint64_t data = instance->generic.data; + uint8_t bits[36] = {}; + + // Convert uint64_t into bit array + for(int i = 35; i >= 0; i--) { + if(data & 1) { + bits[i] = 1; + } + data >>= 1; + } + + // Decode symbols + FuriString* code = furi_string_alloc(); + for(size_t i = 0; i < 35; i += 2) { + uint8_t dip = (bits[i] << 1) + bits[i + 1]; + // PLUS = 3, // 0b11 + // ZERO = 1, // 0b01 + // MINUS = 0, // 0x00 + if(dip == 0x01) { + furi_string_cat(code, "0"); + } else if(dip == 0x00) { + furi_string_cat(code, "-"); + } else if(dip == 0x03) { + furi_string_cat(code, "+"); + } else { + furi_string_cat(code, "?"); + } + } + + FuriString* user_dips = furi_string_alloc(); + FuriString* fact_dips = furi_string_alloc(); + furi_string_set_n(user_dips, code, 0, 10); + furi_string_set_n(fact_dips, code, 10, 8); + + furi_string_cat_printf( + output, + "%s\r\n" + "User-Dips:\t%s\r\n" + "Fac-Code:\t%s\r\n", + instance->generic.protocol_name, + furi_string_get_cstr(user_dips), + furi_string_get_cstr(fact_dips)); + furi_string_free(user_dips); + furi_string_free(fact_dips); + furi_string_free(code); +} + +void* subghz_protocol_encoder_dickert_mahs_alloc(SubGhzEnvironment* environment) { + UNUSED(environment); + SubGhzProtocolEncoderDickertMAHS* instance = malloc(sizeof(SubGhzProtocolEncoderDickertMAHS)); + + instance->base.protocol = &subghz_protocol_dickert_mahs; + instance->generic.protocol_name = instance->base.protocol->name; + + instance->encoder.repeat = 10; + instance->encoder.size_upload = 128; + instance->encoder.upload = malloc(instance->encoder.size_upload * sizeof(LevelDuration)); + instance->encoder.is_running = false; + return instance; +} + +void subghz_protocol_encoder_dickert_mahs_free(void* context) { + furi_assert(context); + SubGhzProtocolEncoderDickertMAHS* instance = context; + free(instance->encoder.upload); + free(instance); +} + +/** + * Generating an upload from data. + * @param instance Pointer to a SubGhzProtocolEncoderDickertMAHS instance + * @return true On success + */ +static bool + subghz_protocol_encoder_dickert_mahs_get_upload(SubGhzProtocolEncoderDickertMAHS* instance) { + furi_assert(instance); + size_t index = 0; + size_t size_upload = (instance->generic.data_count_bit * 2) + 2; + if(size_upload > instance->encoder.size_upload) { + FURI_LOG_E(TAG, "Size upload exceeds allocated encoder buffer."); + return false; + } else { + instance->encoder.size_upload = size_upload; + } + + instance->encoder.upload[index++] = + level_duration_make(false, (uint32_t)subghz_protocol_dickert_mahs_const.te_short * 112); + // Send start bit + instance->encoder.upload[index++] = + level_duration_make(true, (uint32_t)subghz_protocol_dickert_mahs_const.te_short); + + //Send key data + for(uint8_t i = instance->generic.data_count_bit; i > 0; i--) { + if(bit_read(instance->generic.data, i - 1)) { + //send bit 1 + instance->encoder.upload[index++] = + level_duration_make(false, (uint32_t)subghz_protocol_dickert_mahs_const.te_long); + instance->encoder.upload[index++] = + level_duration_make(true, (uint32_t)subghz_protocol_dickert_mahs_const.te_short); + } else { + //send bit 0 + instance->encoder.upload[index++] = + level_duration_make(false, (uint32_t)subghz_protocol_dickert_mahs_const.te_short); + instance->encoder.upload[index++] = + level_duration_make(true, (uint32_t)subghz_protocol_dickert_mahs_const.te_long); + } + } + + return true; +} + +SubGhzProtocolStatus + subghz_protocol_encoder_dickert_mahs_deserialize(void* context, FlipperFormat* flipper_format) { + furi_assert(context); + SubGhzProtocolEncoderDickertMAHS* instance = context; + SubGhzProtocolStatus ret = SubGhzProtocolStatusError; + do { + ret = subghz_block_generic_deserialize(&instance->generic, flipper_format); + if(ret != SubGhzProtocolStatusOk) { + break; + } + + // Allow for longer keys (<) instead of != + if((instance->generic.data_count_bit < + subghz_protocol_dickert_mahs_const.min_count_bit_for_found)) { + FURI_LOG_E(TAG, "Wrong number of bits in key"); + ret = SubGhzProtocolStatusErrorValueBitCount; + break; + } + //optional parameter parameter + flipper_format_read_uint32( + flipper_format, "Repeat", (uint32_t*)&instance->encoder.repeat, 1); + + if(!subghz_protocol_encoder_dickert_mahs_get_upload(instance)) { + ret = SubGhzProtocolStatusErrorEncoderGetUpload; + break; + } + instance->encoder.is_running = true; + } while(false); + + return ret; +} + +void subghz_protocol_encoder_dickert_mahs_stop(void* context) { + SubGhzProtocolEncoderDickertMAHS* instance = context; + instance->encoder.is_running = false; +} + +LevelDuration subghz_protocol_encoder_dickert_mahs_yield(void* context) { + SubGhzProtocolEncoderDickertMAHS* instance = context; + + if(instance->encoder.repeat == 0 || !instance->encoder.is_running) { + instance->encoder.is_running = false; + return level_duration_reset(); + } + + LevelDuration ret = instance->encoder.upload[instance->encoder.front]; + + if(++instance->encoder.front == instance->encoder.size_upload) { + instance->encoder.repeat--; + instance->encoder.front = 0; + } + + return ret; +} + +void* subghz_protocol_decoder_dickert_mahs_alloc(SubGhzEnvironment* environment) { + UNUSED(environment); + SubGhzProtocolDecoderDickertMAHS* instance = malloc(sizeof(SubGhzProtocolDecoderDickertMAHS)); + instance->base.protocol = &subghz_protocol_dickert_mahs; + instance->generic.protocol_name = instance->base.protocol->name; + instance->tmp_cnt = 0; + + return instance; +} + +void subghz_protocol_decoder_dickert_mahs_free(void* context) { + furi_assert(context); + SubGhzProtocolDecoderDickertMAHS* instance = context; + free(instance); +} + +void subghz_protocol_decoder_dickert_mahs_reset(void* context) { + furi_assert(context); + SubGhzProtocolDecoderDickertMAHS* instance = context; + instance->decoder.parser_step = DickertMAHSDecoderStepReset; +} + +void subghz_protocol_decoder_dickert_mahs_feed(void* context, bool level, uint32_t duration) { + furi_assert(context); + SubGhzProtocolDecoderDickertMAHS* instance = context; + + switch(instance->decoder.parser_step) { + case DickertMAHSDecoderStepReset: + // Check if done + if(instance->decoder.decode_count_bit >= + subghz_protocol_dickert_mahs_const.min_count_bit_for_found) { + instance->generic.serial = 0x0; + instance->generic.btn = 0x0; + + instance->generic.data = instance->decoder.decode_data; + instance->generic.data_count_bit = instance->decoder.decode_count_bit; + + if(instance->base.callback) + instance->base.callback(&instance->base, instance->base.context); + + instance->decoder.decode_data = 0; + instance->decoder.decode_count_bit = 0; + } + + if((!level) && (duration > 10 * subghz_protocol_dickert_mahs_const.te_short)) { + //Found header DICKERT_MAHS + instance->decoder.parser_step = DickertMAHSDecoderStepInitial; + } + break; + case DickertMAHSDecoderStepInitial: + if(!level) { + break; + } else if( + DURATION_DIFF(duration, subghz_protocol_dickert_mahs_const.te_short) < + subghz_protocol_dickert_mahs_const.te_delta) { + //Found start bit DICKERT_MAHS + instance->decoder.parser_step = DickertMAHSDecoderStepRecording; + instance->decoder.decode_data = 0; + instance->decoder.decode_count_bit = 0; + } else { + instance->decoder.parser_step = DickertMAHSDecoderStepReset; + } + break; + case DickertMAHSDecoderStepRecording: + if((!level && instance->tmp_cnt == 0) || (level && instance->tmp_cnt == 1)) { + instance->tmp[instance->tmp_cnt] = duration; + + instance->tmp_cnt++; + + if(instance->tmp_cnt == 2) { + if(DURATION_DIFF(instance->tmp[0] + instance->tmp[1], 1200) < + subghz_protocol_dickert_mahs_const.te_delta) { + if(DURATION_DIFF(instance->tmp[0], subghz_protocol_dickert_mahs_const.te_long) < + subghz_protocol_dickert_mahs_const.te_delta) { + subghz_protocol_blocks_add_bit(&instance->decoder, 1); + } else if( + DURATION_DIFF( + instance->tmp[0], subghz_protocol_dickert_mahs_const.te_short) < + subghz_protocol_dickert_mahs_const.te_delta) { + subghz_protocol_blocks_add_bit(&instance->decoder, 0); + } + + instance->tmp_cnt = 0; + } else { + instance->tmp_cnt = 0; + instance->decoder.parser_step = DickertMAHSDecoderStepReset; + } + } + } else { + instance->tmp_cnt = 0; + instance->decoder.parser_step = DickertMAHSDecoderStepReset; + } + + break; + } +} + +uint8_t subghz_protocol_decoder_dickert_mahs_get_hash_data(void* context) { + furi_assert(context); + SubGhzProtocolDecoderDickertMAHS* instance = context; + return subghz_protocol_blocks_get_hash_data( + &instance->decoder, (instance->decoder.decode_count_bit / 8) + 1); +} + +SubGhzProtocolStatus subghz_protocol_decoder_dickert_mahs_serialize( + void* context, + FlipperFormat* flipper_format, + SubGhzRadioPreset* preset) { + furi_assert(context); + SubGhzProtocolDecoderDickertMAHS* instance = context; + return subghz_block_generic_serialize(&instance->generic, flipper_format, preset); +} + +SubGhzProtocolStatus + subghz_protocol_decoder_dickert_mahs_deserialize(void* context, FlipperFormat* flipper_format) { + furi_assert(context); + SubGhzProtocolDecoderDickertMAHS* instance = context; + SubGhzProtocolStatus ret = SubGhzProtocolStatusError; + do { + ret = subghz_block_generic_deserialize(&instance->generic, flipper_format); + if(ret != SubGhzProtocolStatusOk) { + break; + } + + // Allow for longer keys (<) instead of != + if((instance->generic.data_count_bit < + subghz_protocol_dickert_mahs_const.min_count_bit_for_found)) { + FURI_LOG_E(TAG, "Wrong number of bits in key"); + ret = SubGhzProtocolStatusErrorValueBitCount; + break; + } + } while(false); + return ret; +} + +void subghz_protocol_decoder_dickert_mahs_get_string(void* context, FuriString* output) { + furi_assert(context); + subghz_protocol_encoder_dickert_mahs_parse_buffer(context, output); +} diff --git a/lib/subghz/protocols/dickert_mahs.h b/lib/subghz/protocols/dickert_mahs.h new file mode 100644 index 000000000..3f682cee0 --- /dev/null +++ b/lib/subghz/protocols/dickert_mahs.h @@ -0,0 +1,120 @@ +#pragma once + +#include "base.h" + +#define SUBGHZ_PROTOCOL_DICKERT_MAHS_NAME "Dickert_MAHS" + +typedef struct SubGhzProtocolDecoderDickertMAHS SubGhzProtocolDecoderDickertMAHS; +typedef struct SubGhzProtocolEncoderDickertMAHS SubGhzProtocolEncoderDickertMAHS; + +extern const SubGhzProtocolDecoder subghz_protocol_dickert_mahs_decoder; +extern const SubGhzProtocolEncoder subghz_protocol_dickert_mahs_encoder; +extern const SubGhzProtocol subghz_protocol_dickert_mahs; + +/** Allocate SubGhzProtocolEncoderDickertMAHS. + * + * @param environment Pointer to a SubGhzEnvironment instance + * + * @return pointer to a SubGhzProtocolEncoderDickertMAHS instance + */ +void* subghz_protocol_encoder_dickert_mahs_alloc(SubGhzEnvironment* environment); + +/** Free SubGhzProtocolEncoderDickertMAHS. + * + * @param context Pointer to a SubGhzProtocolEncoderDickertMAHS instance + */ +void subghz_protocol_encoder_dickert_mahs_free(void* context); + +/** Deserialize and generating an upload to send. + * + * @param context Pointer to a SubGhzProtocolEncoderDickertMAHS + * instance + * @param flipper_format Pointer to a FlipperFormat instance + * + * @return status + */ +SubGhzProtocolStatus + subghz_protocol_encoder_dickert_mahs_deserialize(void* context, FlipperFormat* flipper_format); + +/** Forced transmission stop. + * + * @param context Pointer to a SubGhzProtocolEncoderDickertMAHS instance + */ +void subghz_protocol_encoder_dickert_mahs_stop(void* context); + +/** Getting the level and duration of the upload to be loaded into DMA. + * + * @param context Pointer to a SubGhzProtocolEncoderDickertMAHS instance + * + * @return LevelDuration + */ +LevelDuration subghz_protocol_encoder_dickert_mahs_yield(void* context); + +/** Allocate SubGhzProtocolDecoderDickertMAHS. + * + * @param environment Pointer to a SubGhzEnvironment instance + * + * @return pointer to a SubGhzProtocolDecoderDickertMAHS instance + */ +void* subghz_protocol_decoder_dickert_mahs_alloc(SubGhzEnvironment* environment); + +/** Free SubGhzProtocolDecoderDickertMAHS. + * + * @param context Pointer to a SubGhzProtocolDecoderDickertMAHS instance + */ +void subghz_protocol_decoder_dickert_mahs_free(void* context); + +/** Reset decoder SubGhzProtocolDecoderDickertMAHS. + * + * @param context Pointer to a SubGhzProtocolDecoderDickertMAHS instance + */ +void subghz_protocol_decoder_dickert_mahs_reset(void* context); + +/** Parse a raw sequence of levels and durations received from the air. + * + * @param context Pointer to a SubGhzProtocolDecoderDickertMAHS instance + * @param level Signal level true-high false-low + * @param duration Duration of this level in, us + */ +void subghz_protocol_decoder_dickert_mahs_feed(void* context, bool level, uint32_t duration); + +/** Getting the hash sum of the last randomly received parcel. + * + * @param context Pointer to a SubGhzProtocolDecoderDickertMAHS instance + * + * @return hash Hash sum + */ +uint8_t subghz_protocol_decoder_dickert_mahs_get_hash_data(void* context); + +/** Serialize data SubGhzProtocolDecoderDickertMAHS. + * + * @param context Pointer to a SubGhzProtocolDecoderDickertMAHS + * instance + * @param flipper_format Pointer to a FlipperFormat instance + * @param preset The modulation on which the signal was received, + * SubGhzRadioPreset + * + * @return status + */ +SubGhzProtocolStatus subghz_protocol_decoder_dickert_mahs_serialize( + void* context, + FlipperFormat* flipper_format, + SubGhzRadioPreset* preset); + +/** Deserialize data SubGhzProtocolDecoderDickertMAHS. + * + * @param context Pointer to a SubGhzProtocolDecoderDickertMAHS + * instance + * @param flipper_format Pointer to a FlipperFormat instance + * + * @return status + */ +SubGhzProtocolStatus + subghz_protocol_decoder_dickert_mahs_deserialize(void* context, FlipperFormat* flipper_format); + +/** Getting a textual representation of the received data. + * + * @param context Pointer to a SubGhzProtocolDecoderDickertMAHS instance + * @param output Resulting text + */ +void subghz_protocol_decoder_dickert_mahs_get_string(void* context, FuriString* output); diff --git a/lib/subghz/protocols/protocol_items.c b/lib/subghz/protocols/protocol_items.c index da1a1e87a..0e7bed1ea 100644 --- a/lib/subghz/protocols/protocol_items.c +++ b/lib/subghz/protocols/protocol_items.c @@ -46,6 +46,7 @@ const SubGhzProtocol* subghz_protocol_registry_items[] = { &subghz_protocol_mastercode, &subghz_protocol_honeywell, &subghz_protocol_legrand, + &subghz_protocol_dickert_mahs, }; const SubGhzProtocolRegistry subghz_protocol_registry = { diff --git a/lib/subghz/protocols/protocol_items.h b/lib/subghz/protocols/protocol_items.h index c0f3be0d6..7054d2407 100644 --- a/lib/subghz/protocols/protocol_items.h +++ b/lib/subghz/protocols/protocol_items.h @@ -47,3 +47,4 @@ #include "mastercode.h" #include "honeywell.h" #include "legrand.h" +#include "dickert_mahs.h" diff --git a/scripts/imglint.py b/scripts/imglint.py new file mode 100644 index 000000000..fc63f3355 --- /dev/null +++ b/scripts/imglint.py @@ -0,0 +1,97 @@ +import logging +import multiprocessing +import os +from pathlib import Path + +from flipper.app import App +from PIL import Image, ImageOps + +_logger = logging.getLogger(__name__) + + +def _check_image(image, do_fixup=False): + failed_checks = [] + with Image.open(image) as img: + # check that is's pure 1-bit B&W + if img.mode != "1": + failed_checks.append(f"not 1-bit B&W, but {img.mode}") + if do_fixup: + img = img.convert("1") + + # ...and does not have any metadata or ICC profile + if img.info: + failed_checks.append(f"has metadata") + if do_fixup: + img.info = {} + + if do_fixup: + img.save(image) + _logger.info(f"Fixed image {image}") + + if failed_checks: + _logger.warning(f"Image {image} issues: {'; '.join(failed_checks)}") + return len(failed_checks) == 0 + + +class ImageLint(App): + ICONS_SUPPORTED_FORMATS = [".png"] + + def init(self): + self.subparsers = self.parser.add_subparsers(help="sub-command help") + + self.parser_check = self.subparsers.add_parser( + "check", help="Check image format and file names" + ) + self.parser_check.add_argument("input", nargs="+") + self.parser_check.set_defaults(func=self.check) + + self.parser_format = self.subparsers.add_parser( + "format", help="Format image and fix file names" + ) + self.parser_format.add_argument( + "input", + nargs="+", + ) + self.parser_format.set_defaults(func=self.format) + + def _gather_images(self, folders): + images = [] + for folder in folders: + for dirpath, _, filenames in os.walk(folder): + for filename in filenames: + if self.is_file_an_icon(filename): + images.append(os.path.join(dirpath, filename)) + return images + + def is_file_an_icon(self, filename): + extension = Path(filename).suffix.lower() + return extension in self.ICONS_SUPPORTED_FORMATS + + def _process_images(self, images, do_fixup): + with multiprocessing.Pool() as pool: + image_checks = pool.starmap( + _check_image, [(image, do_fixup) for image in images] + ) + return all(image_checks) + + def check(self): + images = self._gather_images(self.args.input) + self.logger.info(f"Found {len(images)} images") + if not self._process_images(images, False): + self.logger.error("Some images are not in the correct format") + return 1 + self.logger.info("All images are in the correct format") + return 0 + + def format(self): + images = self._gather_images(self.args.input) + self.logger.info(f"Found {len(images)} images") + if not self._process_images(images, True): + self.logger.warning("Applied fixes to some images") + else: + self.logger.info("All images were in the correct format") + return 0 + + +if __name__ == "__main__": + ImageLint()() diff --git a/targets/f18/api_symbols.csv b/targets/f18/api_symbols.csv index baf1f8a80..57cbd1d62 100644 --- a/targets/f18/api_symbols.csv +++ b/targets/f18/api_symbols.csv @@ -1,5 +1,5 @@ entry,status,name,type,params -Version,+,72.0,, +Version,+,72.1,, Header,+,applications/services/bt/bt_service/bt.h,, Header,+,applications/services/bt/bt_service/bt_keys_storage.h,, Header,+,applications/services/cli/cli.h,, @@ -13,6 +13,7 @@ Header,+,applications/services/gui/icon_i.h,, Header,+,applications/services/gui/modules/button_menu.h,, Header,+,applications/services/gui/modules/button_panel.h,, Header,+,applications/services/gui/modules/byte_input.h,, +Header,+,applications/services/gui/modules/number_input.h,, Header,+,applications/services/gui/modules/dialog_ex.h,, Header,+,applications/services/gui/modules/empty_screen.h,, Header,+,applications/services/gui/modules/file_browser.h,, @@ -722,6 +723,11 @@ Function,+,byte_input_free,void,ByteInput* Function,+,byte_input_get_view,View*,ByteInput* Function,+,byte_input_set_header_text,void,"ByteInput*, const char*" Function,+,byte_input_set_result_callback,void,"ByteInput*, ByteInputCallback, ByteChangedCallback, void*, uint8_t*, uint8_t" +Function,+,number_input_alloc,NumberInput*, +Function,+,number_input_free,void,NumberInput* +Function,+,number_input_get_view,View*,NumberInput* +Function,+,number_input_set_header_text,void,"NumberInput*, const char*" +Function,+,number_input_set_result_callback,void,"NumberInput*, NumberInputCallback, void*, int32_t, int32_t, int32_t" Function,-,bzero,void,"void*, size_t" Function,+,calloc,void*,"size_t, size_t" Function,+,canvas_clear,void,Canvas* @@ -1576,6 +1582,8 @@ Function,+,furi_string_cmpi_str,int,"const FuriString*, const char[]" Function,+,furi_string_empty,_Bool,const FuriString* Function,+,furi_string_end_with,_Bool,"const FuriString*, const FuriString*" Function,+,furi_string_end_with_str,_Bool,"const FuriString*, const char[]" +Function,+,furi_string_end_withi,_Bool,"const FuriString*, const FuriString*" +Function,+,furi_string_end_withi_str,_Bool,"const FuriString*, const char[]" Function,+,furi_string_equal,_Bool,"const FuriString*, const FuriString*" Function,+,furi_string_equal_str,_Bool,"const FuriString*, const char[]" Function,+,furi_string_free,void,FuriString* diff --git a/targets/f7/api_symbols.csv b/targets/f7/api_symbols.csv index dd0fb9f06..0680de4ef 100644 --- a/targets/f7/api_symbols.csv +++ b/targets/f7/api_symbols.csv @@ -1,5 +1,5 @@ entry,status,name,type,params -Version,+,72.0,, +Version,+,72.1,, Header,+,applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h,, Header,+,applications/services/bt/bt_service/bt.h,, Header,+,applications/services/bt/bt_service/bt_keys_storage.h,, @@ -20,6 +20,7 @@ Header,+,applications/services/gui/modules/file_browser.h,, Header,+,applications/services/gui/modules/file_browser_worker.h,, Header,+,applications/services/gui/modules/loading.h,, Header,+,applications/services/gui/modules/menu.h,, +Header,+,applications/services/gui/modules/number_input.h,, Header,+,applications/services/gui/modules/popup.h,, Header,+,applications/services/gui/modules/submenu.h,, Header,+,applications/services/gui/modules/text_box.h,, @@ -1829,6 +1830,8 @@ Function,+,furi_string_cmpi_str,int,"const FuriString*, const char[]" Function,+,furi_string_empty,_Bool,const FuriString* Function,+,furi_string_end_with,_Bool,"const FuriString*, const FuriString*" Function,+,furi_string_end_with_str,_Bool,"const FuriString*, const char[]" +Function,+,furi_string_end_withi,_Bool,"const FuriString*, const FuriString*" +Function,+,furi_string_end_withi_str,_Bool,"const FuriString*, const char[]" Function,+,furi_string_equal,_Bool,"const FuriString*, const FuriString*" Function,+,furi_string_equal_str,_Bool,"const FuriString*, const char[]" Function,+,furi_string_free,void,FuriString* @@ -2861,6 +2864,11 @@ Function,+,notification_internal_message_block,void,"NotificationApp*, const Not Function,+,notification_message,void,"NotificationApp*, const NotificationSequence*" Function,+,notification_message_block,void,"NotificationApp*, const NotificationSequence*" Function,-,nrand48,long,unsigned short[3] +Function,+,number_input_alloc,NumberInput*, +Function,+,number_input_free,void,NumberInput* +Function,+,number_input_get_view,View*,NumberInput* +Function,+,number_input_set_header_text,void,"NumberInput*, const char*" +Function,+,number_input_set_result_callback,void,"NumberInput*, NumberInputCallback, void*, int32_t, int32_t, int32_t" Function,-,on_exit,int,"void (*)(int, void*), void*" Function,+,onewire_host_alloc,OneWireHost*,const GpioPin* Function,+,onewire_host_free,void,OneWireHost* diff --git a/targets/f7/furi_hal/furi_hal_infrared.c b/targets/f7/furi_hal/furi_hal_infrared.c index 029d103cb..a1169391d 100644 --- a/targets/f7/furi_hal/furi_hal_infrared.c +++ b/targets/f7/furi_hal/furi_hal_infrared.c @@ -54,6 +54,7 @@ typedef struct { typedef struct { float cycle_duration; + float cycle_remainder; FuriHalInfraredTxGetDataISRCallback data_callback; FuriHalInfraredTxSignalSentISRCallback signal_sent_callback; void* data_context; @@ -512,7 +513,11 @@ static void furi_hal_infrared_tx_fill_buffer(uint8_t buf_num, uint8_t polarity_s status = infrared_tim_tx.data_callback(infrared_tim_tx.data_context, &duration, &level); - uint32_t num_of_impulses = roundf(duration / infrared_tim_tx.cycle_duration); + const float num_of_impulses_f = + duration / infrared_tim_tx.cycle_duration + infrared_tim_tx.cycle_remainder; + const uint32_t num_of_impulses = roundf(num_of_impulses_f); + // Save the remainder (in carrier periods) for later use + infrared_tim_tx.cycle_remainder = num_of_impulses_f - num_of_impulses; if(num_of_impulses == 0) { if((*size == 0) && (status == FuriHalInfraredTxGetDataStateDone)) { @@ -521,7 +526,7 @@ static void furi_hal_infrared_tx_fill_buffer(uint8_t buf_num, uint8_t polarity_s */ status = FuriHalInfraredTxGetDataStateOk; } - } else if((num_of_impulses - 1) > 0xFFFF) { + } else if((num_of_impulses - 1) > UINT16_MAX) { infrared_tim_tx.tx_timing_rest_duration = num_of_impulses - 1; infrared_tim_tx.tx_timing_rest_status = status; infrared_tim_tx.tx_timing_rest_level = level; @@ -632,6 +637,7 @@ void furi_hal_infrared_async_tx_start(uint32_t freq, float duty_cycle) { infrared_tim_tx.stop_semaphore = furi_semaphore_alloc(1, 0); infrared_tim_tx.cycle_duration = 1000000.0 / freq; infrared_tim_tx.tx_timing_rest_duration = 0; + infrared_tim_tx.cycle_remainder = 0; furi_hal_infrared_tx_fill_buffer(0, INFRARED_POLARITY_SHIFT); @@ -655,7 +661,7 @@ void furi_hal_infrared_async_tx_start(uint32_t freq, float duty_cycle) { const GpioPin* tx_gpio = infrared_tx_pins[infrared_tx_output]; LL_GPIO_ResetOutputPin(tx_gpio->port, tx_gpio->pin); /* when disable it prevents false pulse */ furi_hal_gpio_init_ex( - tx_gpio, GpioModeAltFunctionPushPull, GpioPullUp, GpioSpeedHigh, GpioAltFn1TIM1); + tx_gpio, GpioModeAltFunctionPushPull, GpioPullNo, GpioSpeedHigh, GpioAltFn1TIM1); FURI_CRITICAL_ENTER(); LL_TIM_GenerateEvent_UPDATE(INFRARED_DMA_TIMER); /* TIMx_RCR -> Repetition counter */ diff --git a/targets/f7/furi_hal/furi_hal_region.c b/targets/f7/furi_hal/furi_hal_region.c index c8af57a19..6e138b41b 100644 --- a/targets/f7/furi_hal/furi_hal_region.c +++ b/targets/f7/furi_hal/furi_hal_region.c @@ -29,10 +29,9 @@ const FuriHalRegionBand* furi_hal_region_get_band(uint32_t frequency) { return NULL; } - for(size_t i = 0; i < furi_hal_region->bands_count; i++) { - if(furi_hal_region->bands[i].start <= frequency && - furi_hal_region->bands[i].end >= frequency) { - return &furi_hal_region->bands[i]; + for(size_t i = 0; i < region->bands_count; i++) { + if(region->bands[i].start <= frequency && region->bands[i].end >= frequency) { + return ®ion->bands[i]; } }