/*
 * Copyright (c) 2021 Arm Limited. All rights reserved.
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * 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
 *
 * 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.
 */

/******************************************************************************************************************
 * Model: keyword_spotting_dnn_medium_int8
 * Source: https://github.com/ARM-software/ML-zoo/tree/master/models/keyword_spotting/dnn_medium/tflite_int8
 * Hexdump: python3 -c 'import numpy;i=numpy.load("input.npy");i.tofile("input.bin");' && xxd -i input.bin > input.h
 ******************************************************************************************************************/

unsigned char inputData[] __attribute__((aligned(16), section("input_data_sec"))) = {
    0xab, 0xf0, 0xc7, 0x3d, 0x9a, 0x5a, 0xdc, 0x3e, 0x9b, 0x75, 0x52, 0x3e, 0x6e, 0xd7, 0xb7, 0x3d, 0xdf, 0x5a, 0x1c,
    0xbe, 0x44, 0x65, 0x95, 0x3e, 0x8d, 0xa4, 0xff, 0xbd, 0x79, 0x96, 0x48, 0x3f, 0x35, 0x65, 0x6d, 0x3f, 0x37, 0xb6,
    0x6e, 0xbe, 0xfc, 0x5c, 0x15, 0x3f, 0x0a, 0xb5, 0x6c, 0x3d, 0xf2, 0x5a, 0x0b, 0x3e, 0xcd, 0xe7, 0x59, 0x3f, 0x29,
    0xa1, 0x5b, 0xbf, 0xca, 0x63, 0x53, 0xbf, 0xef, 0xa5, 0x75, 0xbf, 0x26, 0x4d, 0x2a, 0x3f, 0x90, 0x6a, 0x0e, 0x3f,
    0x3b, 0x72, 0x3d, 0x3f, 0x77, 0x0d, 0x75, 0x3f, 0x50, 0x2b, 0x19, 0x3f, 0xd1, 0xc7, 0x9d, 0xbd, 0x85, 0xa1, 0x0f,
    0x3f, 0x89, 0x71, 0x43, 0xbf, 0x75, 0x47, 0x8f, 0x3e, 0x66, 0x9a, 0x36, 0xbf, 0xa5, 0xab, 0x63, 0x3f, 0x40, 0xfb,
    0x32, 0x3d, 0xb9, 0xc5, 0x2e, 0xbe, 0x55, 0x18, 0xf1, 0xbe, 0x5c, 0x68, 0x0c, 0x3f, 0xb6, 0x9b, 0xb3, 0xbd, 0x19,
    0x27, 0x0c, 0x3e, 0x2f, 0x61, 0x76, 0xbf, 0xe1, 0xea, 0x70, 0x3e, 0x71, 0x92, 0x65, 0x3e, 0x17, 0x7b, 0x6f, 0x3e,
    0xf3, 0x32, 0x63, 0x3f, 0x1a, 0x2f, 0xba, 0x3e, 0x29, 0xdd, 0x8f, 0xbe, 0x64, 0xf5, 0x00, 0xbe, 0xd5, 0x5f, 0xca,
    0x3e, 0x21, 0x2a, 0x61, 0xbf, 0xe5, 0xc4, 0xaa, 0x3e, 0xb2, 0xbb, 0xae, 0x3e, 0xbd, 0x48, 0x14, 0xbf, 0x5f, 0xfd,
    0x3d, 0xbf, 0x5a, 0x00, 0xbd, 0xbe, 0x67, 0x8f, 0x8b, 0xbe, 0x53, 0xc3, 0x0f, 0x3e, 0xfb, 0x7c, 0xfb, 0xbd, 0x23,
    0x0c, 0x7a, 0x3f, 0xc8, 0xc0, 0x4b, 0xbf, 0x1b, 0x0e, 0x15, 0xbf, 0xd7, 0x68, 0x2d, 0xbf, 0x6e, 0xc8, 0x9c, 0x3e,
    0x20, 0xa1, 0xfc, 0xbe, 0xb7, 0xfd, 0x89, 0xbd, 0xa6, 0xda, 0x02, 0xbf, 0x8a, 0x9b, 0x2e, 0xbf, 0xe9, 0x7c, 0x47,
    0xbf, 0xdd, 0x14, 0xa0, 0x3e, 0x16, 0x40, 0x39, 0xbf, 0x8f, 0x59, 0x1b, 0xbf, 0xe9, 0x6c, 0x86, 0xbe, 0x3a, 0x59,
    0x24, 0x3f, 0xbe, 0x48, 0x4e, 0xbf, 0x1d, 0x07, 0x2d, 0x3f, 0x31, 0xcc, 0x4e, 0xbf, 0x7f, 0xf2, 0x73, 0x3f, 0x99,
    0x67, 0x80, 0xbd, 0x08, 0x1a, 0x74, 0x3f, 0x3f, 0xb9, 0x56, 0x3e, 0x83, 0x01, 0xf5, 0x3e, 0x94, 0xef, 0x6b, 0xbf,
    0xda, 0x67, 0xde, 0xbe, 0x99, 0x75, 0x42, 0xbf, 0xa0, 0xc0, 0xd0, 0xbe, 0x1f, 0x36, 0x43, 0xbf, 0x9e, 0x62, 0xba,
    0xbe, 0xe2, 0x96, 0x2f, 0xbe, 0x0f, 0x28, 0x5f, 0xbf, 0x69, 0x17, 0xc5, 0x3e, 0x58, 0x66, 0x08, 0x3e, 0xbd, 0x3d,
    0xf0, 0xbe, 0xb4, 0x72, 0x3e, 0x3d, 0x08, 0xe7, 0x4f, 0xbf, 0xd6, 0x89, 0x1b, 0x3e, 0xb6, 0xcc, 0x5b, 0x3f, 0x0f,
    0xc9, 0xb9, 0xbe, 0xa0, 0x6d, 0xab, 0x3e, 0xfe, 0x84, 0x3c, 0xbf, 0xe1, 0x84, 0xdd, 0x3e, 0xee, 0xa5, 0xd7, 0xbe,
    0xbe, 0x34, 0x22, 0xbf, 0xb2, 0x2d, 0x31, 0x3e, 0x77, 0xb4, 0x75, 0xbf, 0xd4, 0x6a, 0x28, 0x3f, 0x8e, 0x98, 0x7d,
    0xbf, 0x8a, 0x15, 0xb6, 0x3e, 0x08, 0x83, 0xeb, 0xbe, 0xb4, 0xd6, 0xf0, 0x3e, 0xfa, 0xa3, 0x6c, 0x3f, 0x6e, 0xa3,
    0x00, 0xbf, 0x60, 0xf8, 0x1b, 0x3e, 0x7b, 0x80, 0x3c, 0x3e, 0xcf, 0xf8, 0x13, 0x3e, 0x3f, 0xc8, 0x0d, 0xbf, 0xb8,
    0xce, 0x67, 0x3f, 0x0f, 0x93, 0xd8, 0xbd, 0x7a, 0x5c, 0x31, 0x3f, 0x4c, 0x44, 0xcc, 0x3e, 0xb0, 0x6c, 0xcf, 0xbe,
    0x1c, 0xaa, 0x20, 0x3f, 0xcc, 0xf4, 0x53, 0xbe, 0xf5, 0x1f, 0x43, 0x3f, 0x64, 0x72, 0x26, 0x3e, 0xd1, 0x72, 0x43,
    0x3f, 0x00, 0x27, 0xc5, 0x3e, 0x0f, 0xa9, 0xe6, 0x3e, 0xe2, 0x96, 0x2d, 0x3b, 0xcb, 0x83, 0x69, 0x3f, 0x2b, 0x72,
    0x93, 0x3e, 0xe2, 0xf1, 0x1b, 0xbe, 0xaf, 0xe4, 0x59, 0x3e, 0x4f, 0x2c, 0x76, 0xbf, 0xf9, 0x2f, 0xcb, 0xbe, 0x88,
    0x04, 0xa4, 0x3e, 0xe5, 0xf5, 0xd6, 0xbe, 0x13, 0xb2, 0x71, 0x3e, 0xb7, 0xe1, 0x11, 0xbe, 0x25, 0xa3, 0x3a, 0xbf,
    0x14, 0x8f, 0xce, 0xbe, 0xc3, 0x49, 0x0f, 0x3e, 0x80, 0x1b, 0x3a, 0x3e, 0xd6, 0x37, 0x18, 0x3e, 0xad, 0xe0, 0x9c,
    0x3e, 0xf6, 0xc0, 0x9b, 0x3e, 0x7e, 0x74, 0x0c, 0xbe, 0x28, 0x08, 0x4b, 0x3f, 0xdc, 0x9d, 0x87, 0xbe, 0x40, 0x59,
    0x03, 0xbe, 0x2e, 0xaa, 0x48, 0x3f, 0x75, 0xc5, 0x1c, 0x3f, 0x2b, 0xc8, 0xd0, 0x3e, 0x10, 0xaf, 0x4c, 0xbf, 0x6d,
    0xc6, 0x56, 0x3f, 0x12, 0x62, 0xdb, 0x3e, 0xe0, 0x68, 0x7f, 0x3f, 0x83, 0x7b, 0x33, 0xbf, 0x05, 0x7b, 0x3c, 0x3f,
    0xba, 0xcd, 0x2c, 0xbf, 0x7e, 0xaa, 0x6c, 0x3e, 0xab, 0x9a, 0x40, 0xbf, 0x22, 0x2e, 0x32, 0x3f, 0xe9, 0x58, 0x1d,
    0x3f, 0xb0, 0x84, 0x0d, 0x3e, 0xaf, 0x16, 0x3e, 0xbe, 0x25, 0x96, 0x5c, 0xbf, 0xc5, 0x2a, 0xca, 0x3e, 0x07, 0x4a,
    0xbe, 0xbd, 0x8b, 0x62, 0xe3, 0x3e, 0x77, 0x96, 0x3b, 0x3f, 0x8e, 0x77, 0x73, 0x3f, 0xdb, 0x2b, 0x36, 0x3f, 0x9d,
    0x00, 0x7a, 0xbf, 0xe9, 0x61, 0x8f, 0xbe, 0xa5, 0x82, 0xeb, 0x3e, 0x28, 0x20, 0x28, 0xbf, 0xf6, 0x54, 0x2c, 0x3d,
    0xd0, 0x2d, 0x64, 0xbf, 0x0e, 0x9a, 0x19, 0xbf, 0x50, 0x84, 0x76, 0xbf, 0x8c, 0x5f, 0x16, 0x3f, 0xbe, 0x59, 0x0d,
    0xbf, 0x21, 0x5c, 0x9e, 0xbe, 0x79, 0x2d, 0x5b, 0x3f, 0x02, 0x52, 0xd1, 0x3e, 0xcf, 0xb2, 0x6f, 0xbf, 0x35, 0xad,
    0x2b, 0xbf, 0xab, 0xc9, 0x78, 0x3e, 0x06, 0x2a, 0x1e, 0x3e, 0xea, 0x32, 0x06, 0xbf, 0x4c, 0x51, 0x5e, 0x3f, 0xfc,
    0x66, 0x69, 0x3e, 0xb4, 0xf3, 0x91, 0x3d, 0xb9, 0x22, 0x38, 0x3e, 0x1c, 0xa5, 0xeb, 0x3e, 0x7e, 0x91, 0xc0, 0xbe,
    0x7a, 0x71, 0x50, 0xbe, 0x5c, 0x8f, 0x14, 0xbf, 0x4f, 0xab, 0x20, 0xbf, 0xc7, 0x84, 0x63, 0x3f, 0xce, 0x4c, 0xf5,
    0x3e, 0xa8, 0x52, 0x9c, 0xbc, 0x4f, 0x90, 0x0b, 0xbf, 0xf9, 0x89, 0xfb, 0xbe, 0x00, 0x4a, 0x62, 0xbf, 0x94, 0x50,
    0x06, 0xbe, 0x95, 0xb8, 0xc0, 0xbe, 0x44, 0x0e, 0xc9, 0x3e, 0x3e, 0x5d, 0x7a, 0xbe, 0xfd, 0x0a, 0x24, 0xbf, 0x4f,
    0x5d, 0x73, 0xbf, 0x75, 0x91, 0x5d, 0xbf, 0xbd, 0xb2, 0xb7, 0x3e, 0x61, 0xa8, 0xbd, 0xbd, 0x15, 0xd4, 0x95, 0x3d,
    0x80, 0x18, 0x4b, 0x3f, 0xb5, 0x0d, 0x7b, 0x3f, 0xe1, 0xf2, 0x10, 0xbf, 0xf9, 0xfd, 0xa6, 0x3e, 0x9e, 0x5b, 0xf2,
    0xbe, 0x3b, 0x6d, 0x75, 0xbf, 0x35, 0x4a, 0x04, 0x3f, 0x6d, 0x4d, 0xb8, 0xbe, 0x7b, 0xaa, 0x6e, 0xbe, 0x9a, 0xdf,
    0x34, 0x3e, 0x2f, 0x7f, 0x29, 0x3f, 0xd1, 0x13, 0x84, 0x3e, 0x11, 0xcc, 0x3e, 0x3f, 0x99, 0xe4, 0xe7, 0xbe, 0x98,
    0x99, 0x18, 0x3f, 0x53, 0xf4, 0x20, 0xbf, 0x4f, 0xd4, 0x67, 0x3f, 0xed, 0xfc, 0xbf, 0x3e, 0xfa, 0xa8, 0x11, 0xbf,
    0xc2, 0x0d, 0x65, 0x3f, 0x77, 0x65, 0xec, 0x3e, 0xb9, 0xf6, 0xfb, 0xbe, 0xc6, 0xc8, 0x12, 0xbf, 0xaa, 0x19, 0x15,
    0x3d, 0x56, 0xdc, 0x72, 0xbf, 0x7b, 0xc6, 0x15, 0xbf, 0x81, 0x3e, 0x1a, 0xbe, 0x96, 0xd9, 0x80, 0xbe, 0xf0, 0x31,
    0x95, 0xbd, 0x4d, 0xb5, 0xe3, 0xbe, 0xfe, 0xbb, 0x31, 0x3e, 0x48, 0x4b, 0x3a, 0x3f, 0xdd, 0xd2, 0x43, 0xbf, 0xa1,
    0x5e, 0x0e, 0x3d, 0x92, 0x61, 0x3c, 0xbf, 0x77, 0x10, 0xde, 0x3e, 0xa7, 0xde, 0x54, 0xbe, 0x9c, 0xfb, 0x05, 0x3e,
    0x25, 0x29, 0x22, 0xbf, 0x84, 0xd6, 0x35, 0xbf, 0x97, 0xaf, 0xc3, 0xbc};