/*
 *
 *    Copyright (c) 2020 Project CHIP Authors
 *    Copyright (c) 2019 Google LLC.
 *    All rights reserved.
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

#pragma once

#include "silabs_utils.h"

// ---- Lighting Example App Config ----

#define APP_TASK_NAME "Lit"

#define BLE_DEV_NAME "SiLabs-Pump"

#define ON_DEMO_BITMAP                                                                                                             \
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,  \
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,    \
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,    \
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF,    \
        0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x03, 0x00, 0x00,    \
        0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x01, 0x00, 0x07, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0x00, 0x00, 0xF8, 0xFF,    \
        0x7F, 0x00, 0x00, 0xFF, 0x01, 0x00, 0xF8, 0xFF, 0x3F, 0x00, 0x00, 0xFF, 0x07, 0x00, 0xF8, 0xFF, 0x1F, 0x00, 0x00, 0xFF,    \
        0x0F, 0x00, 0xF8, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0x1F, 0x00, 0xF8, 0xFF, 0x07, 0x00, 0x00, 0xFF, 0x3F, 0x00, 0xF8, 0xFF,    \
        0x07, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0xF8, 0xFF, 0x03, 0x00, 0x00, 0xFF, 0x7F, 0x00, 0xF8, 0xFF, 0x03, 0x07, 0x00, 0xFF,    \
        0xFF, 0x00, 0xF8, 0xFF, 0x83, 0x0F, 0x00, 0xFF, 0xFF, 0x01, 0xF8, 0xFF, 0x81, 0x3F, 0x00, 0xF8, 0xFF, 0x80, 0xFF, 0xFF,    \
        0x81, 0x7F, 0x00, 0xE0, 0x3F, 0x80, 0xFF, 0xFF, 0xC1, 0xFF, 0x00, 0xC0, 0x0F, 0x80, 0xFF, 0xFF, 0xC0, 0xFF, 0x01, 0xC0,    \
        0x03, 0x80, 0xFF, 0xFF, 0xC0, 0xFF, 0x01, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xE0, 0xFF, 0x80, 0x01, 0x00, 0x00, 0xFF, 0xFF,    \
        0xE0, 0xFF, 0xC0, 0x03, 0x00, 0x00, 0xFF, 0xFF, 0xE0, 0xFF, 0xE0, 0x07, 0x00, 0x00, 0xFF, 0xFF, 0xE0, 0xFF, 0xE0, 0x07,    \
        0x00, 0x00, 0xFF, 0xFF, 0xE0, 0xFF, 0xC0, 0x03, 0x00, 0x00, 0xFF, 0xFF, 0xE0, 0xFF, 0x81, 0x01, 0x00, 0x00, 0xFF, 0xFF,    \
        0xC0, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xC1, 0xFF, 0x00, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xC1, 0x3F, 0x00, 0xC0,    \
        0x03, 0x80, 0xFF, 0xFF, 0xC1, 0x1F, 0x00, 0xE0, 0x07, 0x80, 0xFF, 0xFF, 0x81, 0x07, 0x00, 0xF8, 0x1F, 0x80, 0xFF, 0x1F,    \
        0x80, 0x01, 0x80, 0xFF, 0x7F, 0xC0, 0xFF, 0x1F, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xC0, 0xFF, 0x1F, 0x00, 0x00, 0x80, 0xFF,    \
        0x7F, 0xE0, 0xFF, 0x1F, 0x00, 0x00, 0x80, 0xFF, 0x7F, 0xE0, 0xFF, 0x1F, 0x00, 0x00, 0x80, 0xFF, 0x3F, 0xF0, 0xFF, 0x1F,    \
        0x00, 0x00, 0x80, 0xFF, 0x1F, 0xF0, 0xFF, 0x1F, 0x00, 0x00, 0x80, 0xFF, 0x0F, 0xF8, 0xFF, 0x1F, 0x00, 0x00, 0xC0, 0xFF,    \
        0x03, 0xFC, 0xFF, 0x1F, 0x00, 0x00, 0xC0, 0xFF, 0x00, 0xFE, 0xFF, 0x1F, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0xFF, 0xFF, 0x1F,    \
        0x00, 0x00, 0x80, 0x07, 0x80, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00,    \
        0xF0, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x1F,    \
        0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,    \
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,    \
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,    \
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF

#define OFF_DEMO_BITMAP                                                                                                            \
    0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,  \
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F,    \
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFE, 0xFF, 0xFF, 0xFF,    \
        0xFF, 0xFF, 0xFF, 0x07, 0xFC, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0xF8, 0x0F, 0xF8, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x1F,    \
        0xF0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x3F, 0xE0, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x7F, 0xC0, 0x1F, 0x00, 0x00,    \
        0x00, 0x00, 0xF8, 0xFF, 0x81, 0x3F, 0x00, 0x07, 0x00, 0x00, 0xF8, 0xFF, 0x03, 0x7F, 0x00, 0x7F, 0x00, 0x00, 0xF8, 0xFF,    \
        0x07, 0xFE, 0x00, 0xFF, 0x01, 0x00, 0xF8, 0xFF, 0x0F, 0xFC, 0x01, 0xFF, 0x07, 0x00, 0xF8, 0xFF, 0x1F, 0xF8, 0x03, 0xFF,    \
        0x0F, 0x00, 0xF8, 0xFF, 0x0F, 0xF0, 0x07, 0xFF, 0x1F, 0x00, 0xF8, 0xFF, 0x0F, 0xE0, 0x0F, 0xFF, 0x3F, 0x00, 0xF8, 0xFF,    \
        0x07, 0xC0, 0x1F, 0xFF, 0x7F, 0x00, 0xF8, 0xFF, 0x07, 0x80, 0x3F, 0xFF, 0x7F, 0x00, 0xF8, 0xFF, 0x03, 0x03, 0x7F, 0xFF,    \
        0xFF, 0x00, 0xF8, 0xFF, 0x83, 0x07, 0xFE, 0xFF, 0xFF, 0x01, 0xF8, 0xFF, 0x81, 0x0F, 0xFC, 0xFD, 0xFF, 0x80, 0xFF, 0xFF,    \
        0x81, 0x1F, 0xF8, 0xF3, 0x3F, 0x80, 0xFF, 0xFF, 0xC1, 0x3F, 0xF0, 0xC7, 0x0F, 0x80, 0xFF, 0xFF, 0xC0, 0x7F, 0xE0, 0x8F,    \
        0x01, 0x80, 0xFF, 0xFF, 0xC0, 0xFF, 0xC0, 0x1F, 0x00, 0x00, 0xFF, 0xFF, 0xE0, 0xFF, 0x80, 0x3F, 0x00, 0x00, 0xFF, 0xFF,    \
        0xE0, 0xFF, 0x00, 0x7F, 0x00, 0x00, 0xFF, 0xFF, 0xE0, 0xFF, 0x00, 0xFE, 0x00, 0x00, 0xFF, 0xFF, 0xE0, 0xFF, 0x00, 0xFC,    \
        0x01, 0x00, 0xFF, 0xFF, 0xE0, 0xFF, 0x00, 0xF8, 0x03, 0x00, 0xFF, 0xFF, 0xE0, 0xFF, 0x01, 0xF0, 0x07, 0x00, 0xFF, 0xFF,    \
        0xC0, 0xFF, 0x01, 0xE0, 0x0F, 0x00, 0xFF, 0xFF, 0xC0, 0xFF, 0x00, 0xC0, 0x1F, 0x80, 0xFF, 0xFF, 0xC1, 0x3F, 0x00, 0x80,    \
        0x3F, 0x80, 0xFF, 0xFF, 0xC1, 0x1F, 0x00, 0x00, 0x7F, 0x80, 0xFF, 0xFF, 0x81, 0x07, 0x00, 0x00, 0xFE, 0x80, 0xFF, 0x1F,    \
        0x80, 0x01, 0x80, 0x07, 0xFC, 0xC1, 0xFF, 0x1F, 0x00, 0x00, 0x80, 0x0F, 0xF8, 0xC3, 0xFF, 0x1F, 0x00, 0x00, 0x80, 0x1F,    \
        0xF0, 0xC7, 0xFF, 0x1F, 0x00, 0x00, 0x80, 0x3F, 0xE0, 0xEF, 0xFF, 0x1F, 0x00, 0x00, 0x80, 0x7F, 0xC0, 0xFF, 0xFF, 0x1F,    \
        0x00, 0x00, 0x80, 0xFF, 0x80, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x80, 0xFF, 0x01, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0xC0, 0xFF,    \
        0x03, 0xFE, 0xFF, 0x1F, 0x00, 0x00, 0xC0, 0xFF, 0x01, 0xFC, 0xFF, 0x1F, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0xF8, 0xFF, 0x1F,    \
        0x00, 0x00, 0xC0, 0x07, 0x00, 0xF0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00,    \
        0x70, 0xC0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x80, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0xFF, 0x1F,    \
        0x00, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,    \
        0xFF, 0x0F, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF,    \
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,    \
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
