1 //***************************************************************************** 2 // 3 //! @file am_hal_ble_patch_b0.c 4 //! 5 //! @brief This is a Binary Patch for the BLE Core. 6 //! 7 //! @addtogroup BLE3patch BLE_Patch - BLE Patch 8 //! @ingroup apollo3_hal 9 //! @{ 10 // 11 //***************************************************************************** 12 13 //***************************************************************************** 14 // 15 // Copyright (c) 2024, Ambiq Micro, Inc. 16 // All rights reserved. 17 // 18 // Redistribution and use in source and binary forms, with or without 19 // modification, are permitted provided that the following conditions are met: 20 // 21 // 1. Redistributions of source code must retain the above copyright notice, 22 // this list of conditions and the following disclaimer. 23 // 24 // 2. Redistributions in binary form must reproduce the above copyright 25 // notice, this list of conditions and the following disclaimer in the 26 // documentation and/or other materials provided with the distribution. 27 // 28 // 3. Neither the name of the copyright holder nor the names of its 29 // contributors may be used to endorse or promote products derived from this 30 // software without specific prior written permission. 31 // 32 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 33 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 34 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 35 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 36 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 37 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 38 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 39 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 40 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 41 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 42 // POSSIBILITY OF SUCH DAMAGE. 43 // 44 // This is part of revision release_sdk_3_2_0-dd5f40c14b of the AmbiqSuite Development Package. 45 // 46 //***************************************************************************** 47 48 #include "am_mcu_apollo.h" 49 50 51 //***************************************************************************** 52 // 53 //! BLE LL local supported feature flags. 54 //! Bit position | Link Layer Feature 55 //! - 0 | LE Encryption 56 //! - 1 | Connection Parameters Request Procedure 57 //! - 2 | Extended Reject Indication 58 //! - 3 | Slave-initiated Features Exchange 59 //! - 4 | LE Ping 60 //! - 5 | LE Data Packet Length Extension 61 //! - 6 | LL Privacy 62 //! - 7 | Extended Scanner Filter Policies 63 //! 64 //! Specified 4.6 Feature Support, Link Layer Specification, Core V4.2. 65 // 66 //***************************************************************************** 67 #ifndef AM_HAL_BLE_LOCAL_FEATURE 68 #define AM_HAL_BLE_LOCAL_FEATURE 0x21 69 #endif 70 71 72 73 //***************************************************************************** 74 // 75 //! Patches included in this file. 76 // 77 //***************************************************************************** 78 am_hal_ble_patch_t am_ble_buffer_patch_b0; 79 am_hal_ble_patch_t am_ble_performance_patch_b0; 80 am_hal_ble_patch_t am_ble_nvds_patch_b0; 81 82 //***************************************************************************** 83 // 84 //! Patch application order. 85 // 86 //***************************************************************************** 87 am_hal_ble_patch_t *am_hal_ble_default_patch_array_b0[] = 88 { 89 //! FTCODE patches (type 0xAA) 90 91 //! RAMCODE patches (type 0xBB) 92 &am_ble_performance_patch_b0, 93 94 //! Standard patches (type 0xCC) 95 &am_ble_buffer_patch_b0, 96 97 //! nvds param (type 0xDD) 98 &am_ble_nvds_patch_b0, 99 }; 100 101 #define AM_HAL_BLE_NUM_DEFAULT_PATCHES_B0 \ 102 (sizeof(am_hal_ble_default_patch_array_b0) / \ 103 sizeof(am_hal_ble_default_patch_array_b0[0])) 104 105 am_hal_ble_patch_t **am_hal_ble_default_patches_b0 = am_hal_ble_default_patch_array_b0; 106 const uint32_t am_hal_ble_num_default_patches_b0 = AM_HAL_BLE_NUM_DEFAULT_PATCHES_B0; 107 108 //***************************************************************************** 109 // 110 // Patch Name: RAMCODE PATCH v0.6 for Apollo3 B0 111 112 // Reduce duration from TX to TX 113 // Optimized 32K XO frequency calculation 114 // Optimized AGC Table 115 // Fixed Channelmap indication rejected issue 116 // Fixed 800M Spur 117 // Fixed feature issue 118 // Fixed disconnect issue //long time large data transfer 119 // Date: 2019-10-25 120 //***************************************************************************** 121 //***************************************************************************** 122 // Fixed Sweyntooth security issues 123 // Fixed channel number less than 2 during channel map update 124 // Added protection for certain tx buffer list operation 125 // Disabled interrupt during AES operation 126 // Fixed interrupt nested disable/restore issues 127 // Date: 2020-04-27 128 //***************************************************************************** 129 //***************************************************************************** 130 // Improved instant past issue 0x28 131 // Improved disconnet response timout issue 0x22 132 // Date: 2020-08-23 133 //***************************************************************************** 134 //***************************************************************************** 135 // Fixed RD_REM_FEATURE issue when controller is busy 136 // Improved RD_RSSI 137 // Date: 2020-09-01 138 //***************************************************************************** 139 //***************************************************************************** 140 // Improved the hci send data(slave->host) process. 141 // Date: 2020-10-20 142 //***************************************************************************** 143 //***************************************************************************** 144 // Improved DHKey generation procedure. 145 // Improved connection parameter request procedure. 146 // Date: 2020-12-14 147 //***************************************************************************** 148 //***************************************************************************** 149 // Optimize process for LLCP packet with invalid length. 150 // Optimize process when receiving invalid parameter of LL_LEN_RSP. 151 // Date: 2021-01-07 152 //***************************************************************************** 153 //***************************************************************************** 154 // Fixed No GATT response message during pairing issue 155 // Date: 2021-05-30 156 //***************************************************************************** 157 //***************************************************************************** 158 // Fixed master mode connection issue 159 // Date: 2021-07-19 160 //***************************************************************************** 161 //***************************************************************************** 162 // Fixed No response to LL_ENC_REQ issue 163 // Date: 2021-08-10 164 //***************************************************************************** 165 166 //***************************************************************************** 167 // Optimize process when receiving invalid parameter of LL_LEN_REQ. 168 // Date: 2021-09-13 169 //***************************************************************************** 170 171 //***************************************************************************** 172 // Fixed RF sync error issue on some channels when doing DTM test 173 // Date: 2021-09-14 174 //***************************************************************************** 175 176 //***************************************************************************** 177 // Fixed Carrier-Frequency-deviation issue during DTM testing at -20 Celsius. 178 // Date: 2021-10-26 179 //***************************************************************************** 180 181 //***************************************************************************** 182 // Fix the ACL throughput drop issue when retransmission happens. 183 // Program more ACL packets when TX buffer and time are available in the process 184 // of connection event to avoid the limitation of maximum 4 TX ACL packets in 185 // each connection event and improve the throughput rate. 186 // Date: 2024-05-24 187 //***************************************************************************** 188 189 am_hal_ble_buffer(0x1ac4)am_ble_performance_patch_data_b0 = 190 { 191 .bytes = 192 { 193 0x00,0x11,0xc0,0x1a,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x01,0xc5,0x01, 194 0x39,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 195 0x00,0x00,0x00,0x00,0x01,0x01,0x85,0x36,0x02,0x00,0x00,0x00,0x00,0x10,0x00,0x78, 196 0x00,0x10,0x00,0x06,0x1f,0xb5,0x00,0x24,0x00,0x99,0x14,0x29,0x36,0xd0,0x0f,0xdc, 197 0x32,0xd2,0x08,0x00,0x78,0x44,0x00,0x79,0x00,0x18,0x87,0x44,0x32,0x2f,0x2f,0x2f, 198 0x2f,0x2f,0x2f,0x2f,0x37,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x3e,0x2f,0x41,0x2f, 199 0x21,0x29,0x4c,0xd0,0x0c,0xdc,0x15,0x39,0x09,0x29,0x1d,0xd2,0x08,0x00,0x78,0x44, 200 0x00,0x79,0x00,0x18,0x87,0x44,0x1a,0x1a,0x2f,0x1a,0x32,0x35,0x1a,0x3b,0x41,0x00, 201 0x5e,0x29,0x40,0xd0,0x08,0xdc,0x4c,0x29,0x48,0xd0,0x5b,0x29,0x40,0xd0,0x5c,0x29, 202 0x4d,0xd0,0x5d,0x29,0x08,0xd1,0x45,0xe0,0x6c,0x29,0x4c,0xd0,0x79,0x29,0x59,0xd0, 203 0x7a,0x29,0x66,0xd0,0x7b,0x29,0x01,0xd0,0x00,0x24,0xe4,0x43,0x20,0x46,0x04,0xb0, 204 0x10,0xbd,0x01,0x98,0xc0,0xb2,0x00,0xf0,0x1f,0xf9,0xf7,0xe7,0x06,0x9b,0x03,0x9a, 205 0x02,0x99,0x01,0x98,0x01,0xf0,0x7c,0xfc,0xf0,0xe7,0x00,0xf0,0x85,0xf8,0xed,0xe7, 206 0x01,0xf0,0xca,0xfb,0xea,0xe7,0x00,0xf0,0x4d,0xfb,0xe7,0xe7,0x00,0xf0,0xa4,0xfb, 207 0xe4,0xe7,0x01,0x98,0xc0,0xb2,0x00,0xf0,0xdd,0xf9,0x04,0x46,0xde,0xe7,0x01,0x98, 208 0xc0,0xb2,0x01,0xf0,0x7d,0xfb,0x04,0x46,0xd8,0xe7,0x00,0xf0,0x6f,0xfa,0x01,0xf0, 209 0x31,0xfb,0x04,0x46,0xd2,0xe7,0x01,0x98,0x01,0xf0,0x08,0xf8,0x04,0x46,0xcd,0xe7, 210 0x02,0x98,0xc1,0xb2,0x01,0x98,0x01,0xf0,0x73,0xf8,0xc7,0xe7,0x01,0x98,0x00,0xf0, 211 0x2b,0xfe,0xc3,0xe7,0x01,0x98,0x00,0xf0,0xdf,0xfe,0x04,0x46,0xbe,0xe7,0x01,0x98, 212 0x01,0xf0,0x46,0xf9,0xba,0xe7,0x03,0x98,0x00,0x28,0x01,0xd0,0x01,0x22,0x00,0xe0, 213 0x00,0x22,0x02,0x98,0x06,0x9b,0x81,0xb2,0x01,0x98,0x80,0xb2,0x00,0xf0,0x24,0xfc, 214 0x04,0x46,0xab,0xe7,0x03,0x98,0x00,0x28,0x01,0xd0,0x01,0x22,0x00,0xe0,0x00,0x22, 215 0x02,0x98,0x06,0x9b,0x81,0xb2,0x01,0x98,0x80,0xb2,0x00,0xf0,0x95,0xfc,0x04,0x46, 216 0x9c,0xe7,0x03,0x98,0x00,0x28,0x01,0xd0,0x01,0x22,0x00,0xe0,0x00,0x22,0x02,0x98, 217 0x06,0x9b,0x81,0xb2,0x01,0x98,0x80,0xb2,0x00,0xf0,0x24,0xfd,0x04,0x46,0x8d,0xe7, 218 0x03,0xb4,0x01,0x48,0x01,0x90,0x01,0xbd,0x01,0x01,0x00,0x00,0x03,0xb4,0x01,0x48, 219 0x01,0x90,0x01,0xbd,0x79,0x01,0x00,0x00,0x03,0xb4,0x01,0x48,0x01,0x90,0x01,0xbd, 220 0x2d,0x01,0x00,0x00,0x03,0xb4,0x01,0x48,0x01,0x90,0x01,0xbd,0x85,0x3c,0x00,0x00, 221 0x03,0xb4,0x01,0x48,0x01,0x90,0x01,0xbd,0x1d,0x11,0x01,0x00,0x03,0xb4,0x01,0x48, 222 0x01,0x90,0x01,0xbd,0x55,0x01,0x00,0x00,0xf0,0xb4,0x00,0x20,0x43,0x27,0x3f,0x06, 223 0x79,0x68,0xff,0x24,0x01,0x34,0x21,0x43,0x79,0x60,0x79,0x68,0x22,0x03,0x11,0x43, 224 0x79,0x60,0xa3,0x21,0xc9,0x05,0x0a,0x68,0x52,0x08,0x52,0x00,0x0a,0x60,0x34,0x49, 225 0x09,0x69,0xcd,0xb2,0x33,0x49,0x09,0x78,0xc9,0x07,0xc9,0x0f,0x0a,0x05,0x0b,0x02, 226 0x00,0x2d,0x06,0xd0,0x30,0x49,0x31,0x4e,0x09,0x88,0xb1,0x42,0x0d,0xd3,0x04,0x20, 227 0x19,0xe0,0x78,0x68,0x01,0x21,0x09,0x05,0x88,0x43,0x10,0x43,0x78,0x60,0x78,0x68, 228 0xa0,0x43,0x18,0x43,0x78,0x60,0xf0,0xbc,0x70,0x47,0x29,0x4e,0xb1,0x42,0x01,0xd3, 229 0x03,0x20,0x08,0xe0,0x27,0x4e,0xb1,0x42,0x01,0xd3,0x02,0x20,0x03,0xe0,0x26,0x4e, 230 0xb1,0x42,0x00,0xd3,0x01,0x20,0x25,0x4e,0x31,0x18,0x20,0x31,0x09,0x7e,0xa9,0x42, 231 0x09,0xda,0x00,0x28,0x01,0xdd,0x40,0x1e,0x40,0xb2,0x31,0x18,0x09,0x7a,0x40,0x00, 232 0x80,0x19,0x00,0x8b,0x0b,0xe0,0x04,0x28,0x04,0xda,0x31,0x5c,0xa9,0x42,0x01,0xdb, 233 0x40,0x1c,0x40,0xb2,0x31,0x18,0x09,0x7a,0x40,0x00,0x80,0x19,0x00,0x8b,0x18,0x4d, 234 0x29,0x62,0xa3,0x25,0xed,0x05,0x29,0x68,0x49,0x08,0x49,0x00,0x29,0x60,0x15,0x4e, 235 0x31,0x6b,0xff,0x24,0x01,0x34,0x0c,0x43,0x34,0x63,0xa8,0x62,0xff,0x24,0x01,0x34, 236 0xa1,0x43,0x31,0x63,0x08,0x49,0x08,0x80,0x78,0x68,0x21,0x03,0x88,0x43,0x10,0x43, 237 0x78,0x60,0x78,0x68,0x09,0x13,0x88,0x43,0x18,0x43,0x78,0x60,0xf0,0xbc,0x70,0x47, 238 0x80,0x00,0x80,0x45,0x3a,0x68,0x00,0x20,0x50,0x68,0x00,0x20,0xf6,0x3f,0x00,0x00, 239 0xf6,0x38,0x00,0x00,0xf6,0x2d,0x00,0x00,0xf6,0x09,0x00,0x00,0x50,0x6e,0x00,0x20, 240 0x80,0x04,0xc0,0x50,0x40,0x00,0x80,0x45,0xf0,0xb4,0x43,0x21,0x09,0x06,0x4a,0x68, 241 0x01,0x20,0x80,0x04,0x02,0x43,0x4a,0x60,0xc4,0x23,0x87,0x22,0xd2,0x05,0x13,0x60, 242 0x3e,0x23,0xd3,0x60,0x4d,0x4b,0x53,0x61,0x4a,0x68,0x82,0x43,0x4c,0x48,0x00,0x78, 243 0xc0,0x07,0xc0,0x0f,0x83,0x04,0x1a,0x43,0x4a,0x60,0x8b,0x23,0x49,0x4a,0xdb,0x05, 244 0x5a,0x63,0x49,0x4c,0x02,0x22,0xe2,0x60,0x05,0x22,0xca,0x60,0xda,0x63,0x01,0x22, 245 0x22,0x61,0x62,0x62,0xa2,0x63,0x45,0x4c,0x22,0x60,0x45,0x4d,0x65,0x61,0xdc,0x6a, 246 0x14,0x43,0xdc,0x62,0x4a,0x68,0x01,0x24,0x24,0x04,0x22,0x43,0x4a,0x60,0x4a,0x68, 247 0xa5,0x10,0x2a,0x43,0x4a,0x60,0x40,0x4a,0x3e,0x4b,0x53,0x61,0x93,0x68,0x3f,0x26, 248 0xb6,0x05,0x33,0x43,0x93,0x60,0x00,0x23,0xd3,0x60,0x3c,0x4b,0x93,0x61,0x3c,0x4b, 249 0x1b,0x78,0x3c,0x2b,0x01,0xd1,0x06,0x23,0xd3,0x63,0x3a,0x4e,0x33,0x68,0x1e,0x27, 250 0xbb,0x43,0x33,0x60,0x93,0x6a,0xfe,0x03,0xb3,0x43,0x01,0x26,0xb6,0x04,0x9b,0x19, 251 0x93,0x62,0x35,0x4b,0xf0,0x22,0x5a,0x60,0x4a,0x68,0x03,0x04,0xa2,0x43,0x1a,0x43, 252 0x4a,0x60,0x4a,0x68,0x83,0x03,0xaa,0x43,0x1a,0x43,0x4a,0x60,0x4a,0x68,0x74,0x11, 253 0x22,0x43,0x4a,0x60,0x29,0x22,0x52,0x06,0x13,0x6a,0x1b,0x09,0x1b,0x01,0x08,0x33, 254 0x13,0x62,0x2a,0x4b,0xd3,0x60,0x4a,0x68,0x43,0x03,0xa2,0x43,0x1a,0x43,0x4a,0x60, 255 0x4a,0x68,0xe5,0x01,0x2a,0x43,0x4a,0x60,0x28,0x24,0xa3,0x23,0xdb,0x05,0x1c,0x60, 256 0x23,0x4a,0x12,0x88,0x9a,0x62,0x23,0x4b,0x9a,0x62,0x4a,0x68,0x00,0x05,0xaa,0x43, 257 0x02,0x43,0x4a,0x60,0x20,0x48,0xe6,0x23,0x03,0x70,0x04,0x72,0x1f,0x49,0x01,0x83, 258 0x1f,0x49,0xe0,0x24,0x0c,0x76,0xd4,0x22,0x42,0x70,0x3c,0x22,0x42,0x72,0x1d,0x4a, 259 0x42,0x83,0x4b,0x76,0xc8,0x22,0x82,0x70,0x46,0x25,0x85,0x72,0x1a,0x4d,0x85,0x83, 260 0x8b,0x76,0xc2,0x70,0x50,0x22,0xc2,0x72,0x18,0x4a,0xc2,0x83,0xcc,0x76,0x5a,0x22, 261 0x02,0x73,0x17,0x4a,0x02,0x84,0x0c,0x77,0xf0,0xbc,0x70,0x47,0xff,0x7f,0x00,0x00, 262 0x3a,0x68,0x00,0x20,0x49,0x02,0x00,0x00,0x40,0x00,0x80,0x45,0x80,0x00,0x80,0x45, 263 0x1e,0x02,0x00,0x00,0x03,0x00,0x3c,0x00,0x00,0x00,0x40,0x52,0x08,0x00,0x0f,0x00, 264 0x41,0x68,0x00,0x20,0x00,0x00,0xc0,0x51,0x40,0x00,0x40,0x52,0xcc,0x34,0x63,0x02, 265 0x50,0x68,0x00,0x20,0xc0,0x7e,0x00,0x20,0x50,0x6e,0x00,0x20,0xf6,0x07,0x00,0x00, 266 0x70,0x6e,0x00,0x20,0xf6,0x09,0x00,0x00,0xf6,0x2d,0x00,0x00,0xf6,0x38,0x00,0x00, 267 0xf6,0x3f,0x00,0x00,0xf8,0xb5,0x3f,0x48,0x00,0x68,0x00,0x28,0x78,0xd1,0x43,0x20, 268 0x00,0x06,0x41,0x68,0x01,0x22,0xd2,0x03,0x11,0x43,0x41,0x60,0x3a,0x4f,0x3d,0x68, 269 0x01,0x26,0x03,0x20,0x00,0x06,0x28,0x43,0x38,0x60,0x00,0x24,0x37,0x49,0x1e,0x20, 270 0x88,0x47,0x36,0x49,0x01,0x20,0x88,0x47,0x78,0x68,0xc0,0x07,0xc0,0x0f,0x21,0x46, 271 0x33,0x4a,0x64,0x1c,0x91,0x42,0x01,0xd8,0x00,0x28,0xf2,0xd0,0x2e,0x48,0x80,0x68, 272 0x30,0x49,0x08,0x60,0x00,0x24,0x00,0x27,0x00,0x2e,0x11,0xd0,0x2e,0x4a,0x39,0x46, 273 0x00,0x23,0x82,0x1a,0x99,0x41,0x14,0xda,0x64,0x1c,0x23,0x46,0x2a,0x4e,0x43,0x43, 274 0x3a,0x46,0x00,0x21,0xf3,0x1a,0x91,0x41,0xc3,0x1a,0x8a,0x41,0xf4,0xdb,0x08,0xe0, 275 0x26,0x49,0x88,0x42,0x05,0xd2,0x64,0x1c,0x22,0x46,0x42,0x43,0x8a,0x1a,0x82,0x42, 276 0xf9,0xd8,0x23,0x4f,0x21,0x46,0x38,0x46,0xff,0xf7,0x2a,0xfe,0x06,0x46,0x30,0x46, 277 0x60,0x43,0x38,0x1a,0x00,0x03,0x21,0x46,0xff,0xf7,0x22,0xfe,0x07,0x46,0x7d,0x20, 278 0x19,0x21,0x00,0x02,0x89,0x01,0x84,0x42,0x05,0xd9,0x20,0x1a,0x00,0x04,0xff,0xf7, 279 0x17,0xfe,0x01,0x46,0x04,0xe0,0x00,0x1b,0x00,0x04,0xff,0xf7,0x11,0xfe,0x01,0x46, 280 0x14,0x48,0x06,0x63,0x47,0x63,0x81,0x63,0x01,0x20,0x00,0x06,0x85,0x43,0x40,0x00, 281 0x05,0x43,0x09,0x48,0x05,0x60,0x43,0x20,0x00,0x06,0x41,0x68,0x01,0x22,0xd2,0x03, 282 0x91,0x43,0x0d,0x4a,0x12,0x78,0xd2,0x07,0x12,0x0c,0x11,0x43,0x41,0x60,0x20,0x46, 283 0xf8,0xbd,0x00,0x00,0x60,0x68,0x00,0x20,0x00,0x00,0x40,0x44,0xe5,0x3e,0x00,0x00, 284 0x10,0x27,0x00,0x00,0x64,0x68,0x00,0x20,0x00,0x20,0xbc,0xbe,0x00,0xd0,0x12,0x13, 285 0x00,0x90,0xd0,0x03,0xc0,0x7e,0x00,0x20,0x3a,0x68,0x00,0x20,0xc0,0x00,0xe6,0x30, 286 0x80,0xb2,0x00,0x29,0x01,0xd0,0x20,0x30,0x80,0xb2,0x70,0x47,0x51,0x48,0x80,0x47, 287 0x51,0x48,0x80,0x47,0x51,0x48,0x80,0x47,0x51,0x48,0x52,0x49,0x00,0x68,0x88,0x47, 288 0x01,0x20,0xff,0xf7,0x57,0xff,0x50,0x49,0x08,0x60,0x50,0x48,0x80,0x47,0x50,0x48, 289 0x80,0x47,0x50,0x48,0x80,0x47,0x00,0x20,0xc0,0x26,0x4f,0x4c,0xff,0x27,0x01,0x46, 290 0x40,0x1c,0x49,0xb2,0x00,0x29,0x10,0xda,0x0a,0x07,0x12,0x0f,0x08,0x3a,0x92,0x08, 291 0x92,0x00,0x12,0x19,0xd5,0x69,0x89,0x07,0xc9,0x0e,0x3b,0x46,0x8b,0x40,0x9d,0x43, 292 0x33,0x46,0x8b,0x40,0x1d,0x43,0xd5,0x61,0x0d,0xe0,0x8b,0x08,0x43,0x4a,0x9b,0x00, 293 0x9a,0x18,0x13,0x68,0x89,0x07,0xc9,0x0e,0x3d,0x46,0x8d,0x40,0xab,0x43,0x35,0x46, 294 0x8d,0x40,0x2b,0x43,0x13,0x60,0x1e,0x28,0xd9,0xd9,0x3d,0x49,0x08,0x68,0x00,0x0a, 295 0x00,0x02,0x08,0x60,0x08,0x68,0xff,0x23,0x1b,0x02,0x98,0x43,0x08,0x60,0x0a,0x1d, 296 0x10,0x68,0x00,0x02,0x00,0x0a,0x10,0x60,0x08,0x68,0x1d,0x02,0x01,0x26,0xa8,0x43, 297 0xf6,0x05,0x30,0x43,0x08,0x60,0x08,0x1f,0x01,0x68,0x09,0x02,0x09,0x0a,0xc7,0x06, 298 0x39,0x43,0x01,0x60,0x10,0x68,0x00,0x27,0x01,0x0a,0x09,0x02,0x80,0x20,0x01,0x43, 299 0x11,0x60,0x10,0x68,0x71,0x12,0x98,0x43,0x08,0x43,0x10,0x60,0x10,0x68,0xa8,0x43, 300 0x30,0x43,0x10,0x60,0x00,0x20,0x80,0xf3,0x10,0x88,0x26,0x4e,0x26,0x48,0x80,0x47, 301 0x26,0x48,0x80,0x47,0x26,0x48,0x80,0x47,0x00,0x28,0xf7,0xd0,0x25,0x4d,0xa8,0x47, 302 0x00,0x28,0xf3,0xdb,0xb0,0x47,0x00,0x28,0xf0,0xd1,0x23,0x48,0x80,0x47,0xa8,0x47, 303 0x00,0x28,0xeb,0xdb,0xb0,0x47,0x00,0x28,0xe8,0xd1,0xef,0xf3,0x10,0x80,0xc5,0xb2, 304 0x01,0x20,0x80,0xf3,0x10,0x88,0x1d,0x48,0x80,0x47,0x00,0x28,0x0e,0xd0,0x1c,0x48, 305 0x01,0x68,0x00,0x29,0x05,0xd0,0x07,0x60,0x00,0xf0,0x34,0xf8,0x00,0xf0,0x8c,0xf8, 306 0x04,0xe0,0x20,0x69,0xfb,0x21,0x08,0x40,0x20,0x61,0x30,0xbf,0x85,0xf3,0x10,0x88, 307 0xcc,0xe7,0x00,0x00,0x6d,0x95,0x00,0x00,0x19,0x5f,0x01,0x00,0x6d,0x4f,0x01,0x00, 308 0x20,0x68,0x00,0x20,0xa5,0x58,0x01,0x00,0x58,0x68,0x00,0x20,0x55,0x4f,0x01,0x00, 309 0x65,0x50,0x01,0x00,0x49,0x4f,0x01,0x00,0x00,0xed,0x00,0xe0,0x00,0xe4,0x00,0xe0, 310 0x0c,0xe4,0x00,0xe0,0x51,0x3a,0x00,0x00,0x79,0x5a,0x01,0x00,0x89,0x39,0x00,0x00, 311 0x59,0x3f,0x00,0x00,0x1d,0x61,0x00,0x00,0x75,0x3a,0x00,0x00,0x8d,0x5a,0x01,0x00, 312 0x70,0x68,0x00,0x20,0xf8,0xb5,0x00,0x24,0x24,0x48,0x80,0x47,0x43,0x25,0x2d,0x06, 313 0x01,0x21,0x68,0x68,0x89,0x04,0x08,0x43,0x68,0x60,0x8b,0x26,0xf6,0x05,0x30,0x68, 314 0x08,0x21,0x88,0x43,0x30,0x60,0x1e,0x48,0x80,0x47,0x06,0x20,0xe8,0x60,0x1d,0x4d, 315 0x01,0x20,0xa8,0x47,0xa1,0x20,0xc0,0x05,0x01,0x6b,0x02,0x22,0x91,0x43,0x11,0x43, 316 0x01,0x63,0x01,0x21,0x02,0x6b,0x8a,0x43,0x0a,0x43,0x02,0x63,0x01,0x6b,0x04,0x27, 317 0xb9,0x43,0x39,0x43,0x01,0x63,0x14,0x48,0x41,0x68,0x89,0x00,0x0a,0xd5,0x01,0x20, 318 0xa8,0x47,0x20,0x46,0x64,0x1c,0xe4,0xb2,0x19,0x28,0x03,0xd8,0x0e,0x48,0x40,0x68, 319 0x80,0x00,0xf4,0xd4,0x0d,0x4c,0x0f,0x20,0x60,0x60,0x01,0x20,0xa8,0x47,0x07,0x20, 320 0x60,0x60,0x04,0x20,0xa8,0x47,0x06,0x20,0x60,0x60,0x09,0x48,0x30,0x60,0x09,0x48, 321 0x01,0x69,0x39,0x43,0x01,0x61,0x30,0xbf,0xf8,0xbd,0x00,0x00,0x75,0x3a,0x00,0x00, 322 0x85,0xa3,0x00,0x00,0xe5,0x3e,0x00,0x00,0x80,0x00,0x80,0x45,0x40,0x00,0x80,0x45, 323 0x26,0x03,0x00,0x00,0x00,0xed,0x00,0xe0,0x70,0xb5,0x48,0x4d,0x0f,0x20,0x68,0x60, 324 0x8b,0x20,0xc0,0x05,0x01,0x68,0x46,0x4a,0x11,0x40,0x01,0x60,0x01,0x68,0x08,0x22, 325 0x11,0x43,0x01,0x60,0x28,0x6a,0x04,0x21,0x08,0x43,0x28,0x62,0x41,0x48,0x80,0x47, 326 0x05,0x20,0x43,0x24,0x24,0x06,0xe0,0x60,0x3f,0x4e,0x01,0x20,0xb0,0x47,0x3f,0x48, 327 0x80,0x47,0x3f,0x48,0x80,0x47,0x3f,0x48,0x80,0x47,0x68,0x68,0x0d,0x28,0x03,0xd0, 328 0x20,0x20,0xb0,0x47,0x0d,0x20,0x68,0x60,0x3b,0x48,0x80,0x47,0x60,0x68,0x01,0x23, 329 0x1b,0x04,0x18,0x43,0x60,0x60,0x60,0x68,0x9a,0x10,0x10,0x43,0x60,0x60,0x38,0x48, 330 0x36,0x49,0x41,0x61,0x81,0x68,0x3f,0x25,0xad,0x05,0x29,0x43,0x81,0x60,0x00,0x21, 331 0xc1,0x60,0x34,0x49,0x81,0x61,0x34,0x49,0x09,0x78,0x3c,0x29,0x01,0xd1,0x06,0x21, 332 0xc1,0x63,0x32,0x4d,0x29,0x68,0x1e,0x26,0xb1,0x43,0x29,0x60,0x81,0x6a,0xf5,0x03, 333 0xa9,0x43,0x01,0x25,0xad,0x04,0x49,0x19,0x81,0x62,0x2d,0x49,0xf0,0x20,0x48,0x60, 334 0x61,0x68,0x2c,0x48,0x99,0x43,0x00,0x78,0xc0,0x07,0xc0,0x0f,0x03,0x04,0x19,0x43, 335 0x61,0x60,0x61,0x68,0x91,0x43,0x82,0x03,0x11,0x43,0x61,0x60,0x61,0x68,0x6a,0x11, 336 0x11,0x43,0x61,0x60,0x29,0x21,0x24,0x4b,0x49,0x06,0xcb,0x60,0x0b,0x6a,0x1b,0x09, 337 0x1b,0x01,0x08,0x33,0x0b,0x62,0x0b,0x68,0xd5,0x10,0x2b,0x43,0x0b,0x60,0x1f,0x4b, 338 0x1b,0x78,0x5b,0x00,0x5b,0x1c,0x4b,0x61,0x61,0x68,0x91,0x43,0x42,0x03,0x11,0x43, 339 0x61,0x60,0x62,0x68,0xa9,0x02,0x0a,0x43,0x62,0x60,0x28,0x23,0xa3,0x22,0xd2,0x05, 340 0x13,0x60,0x17,0x4b,0x1b,0x88,0x93,0x62,0x62,0x68,0x00,0x05,0x8a,0x43,0x02,0x43, 341 0x62,0x60,0x14,0x49,0x01,0x20,0x88,0x47,0x70,0xbd,0x00,0x00,0x40,0x00,0x80,0x45, 342 0xfd,0xfd,0xff,0xff,0x75,0x3a,0x00,0x00,0xe5,0x3e,0x00,0x00,0x65,0x50,0x01,0x00, 343 0x29,0x48,0x01,0x00,0xc5,0x64,0x01,0x00,0x69,0x48,0x01,0x00,0x03,0x00,0x3c,0x00, 344 0x00,0x00,0x40,0x52,0x08,0x00,0x0f,0x00,0x41,0x68,0x00,0x20,0x00,0x00,0xc0,0x51, 345 0x40,0x00,0x40,0x52,0x3a,0x68,0x00,0x20,0xcc,0x34,0x63,0x04,0x74,0x68,0x00,0x20, 346 0x50,0x68,0x00,0x20,0xa1,0x59,0x01,0x00,0xff,0xb5,0x81,0xb0,0x0d,0x46,0x00,0x26, 347 0x35,0x49,0x28,0x46,0x88,0x47,0x00,0x90,0x01,0x98,0x87,0x00,0x33,0x48,0xc4,0x59, 348 0x20,0x46,0xa0,0x30,0x41,0x79,0x09,0x07,0x07,0xd5,0x00,0x79,0x07,0x28,0x04,0xd0, 349 0x2f,0x4a,0x3d,0x21,0x01,0x98,0x90,0x47,0x52,0xe0,0x2e,0x49,0x01,0x98,0x88,0x47, 350 0x04,0x28,0x4d,0xd1,0x68,0x46,0x01,0x78,0x02,0x20,0x88,0x43,0x08,0xd0,0x00,0x20, 351 0x00,0x28,0x07,0xd0,0xa4,0x20,0x00,0x5d,0x07,0x28,0x03,0xd0,0x02,0x26,0x3f,0xe0, 352 0x01,0x20,0xf5,0xe7,0x28,0x46,0x02,0x22,0x11,0x43,0x00,0x91,0x22,0x4e,0xb0,0x47, 353 0x28,0x46,0x04,0x23,0x6a,0x46,0x11,0x78,0x19,0x43,0x00,0x91,0xb0,0x47,0x08,0x20, 354 0xa4,0x21,0x08,0x55,0x04,0x98,0x80,0x1e,0x18,0x4e,0xf1,0x59,0x88,0x60,0xff,0x20, 355 0x1a,0x4a,0x29,0x46,0x03,0x30,0x90,0x47,0xef,0xf3,0x10,0x80,0xc1,0xb2,0x01,0x20, 356 0x80,0xf3,0x10,0x88,0xf0,0x59,0x0c,0x23,0xa0,0x30,0x42,0x79,0x1a,0x43,0x42,0x71, 357 0x20,0x69,0x28,0x30,0x60,0x30,0x00,0x7e,0x81,0xf3,0x10,0x88,0x00,0x28,0x05,0xd0, 358 0x40,0x34,0xa0,0x8b,0x04,0x21,0x08,0x43,0xa0,0x83,0x08,0xe0,0xff,0x20,0x07,0x30, 359 0x0b,0x4c,0x00,0x23,0x2a,0x46,0x29,0x46,0xa0,0x47,0x0a,0x49,0x88,0x47,0x01,0x26, 360 0x30,0x46,0x05,0xb0,0xf0,0xbd,0x00,0x00,0x0d,0x9f,0x00,0x00,0x64,0x69,0x00,0x20, 361 0x25,0xc4,0x00,0x00,0x1d,0x0a,0x01,0x00,0x31,0x9f,0x00,0x00,0x89,0xa1,0x00,0x00, 362 0xf5,0x9d,0x00,0x00,0x31,0x9e,0x00,0x00,0xff,0xb5,0x81,0xb0,0x1d,0x46,0x00,0x20, 363 0x00,0x90,0x01,0x98,0x42,0x49,0x80,0x00,0x0e,0x58,0x01,0x23,0x34,0x46,0x40,0x34, 364 0xe2,0x7c,0x1a,0x43,0xe2,0x74,0x08,0x58,0xa0,0x30,0x40,0x79,0x00,0x07,0x03,0xd5, 365 0x3c,0x4a,0x3d,0x21,0x01,0x98,0x90,0x47,0x6a,0x88,0x1b,0x2a,0x0a,0xd3,0xeb,0x88, 366 0x1b,0x2b,0x07,0xd3,0xa9,0x88,0xff,0x27,0x49,0x37,0xb9,0x42,0x02,0xd3,0x28,0x89, 367 0xb8,0x42,0x05,0xd2,0x34,0x4b,0x29,0x78,0x20,0x22,0x01,0x98,0x98,0x47,0x5b,0xe0, 368 0xa5,0x88,0x9d,0x42,0x00,0xd2,0x2b,0x46,0x9b,0xb2,0xa5,0x89,0x85,0x42,0x00,0xd2, 369 0x28,0x46,0x80,0xb2,0x65,0x88,0x95,0x42,0x00,0xd2,0x2a,0x46,0x92,0xb2,0x65,0x89, 370 0x8d,0x42,0x00,0xd2,0x29,0x46,0x89,0xb2,0x25,0x89,0x9d,0x42,0x08,0xd1,0x25,0x8a, 371 0x85,0x42,0x05,0xd1,0xe5,0x88,0x95,0x42,0x02,0xd1,0xe5,0x89,0x8d,0x42,0x12,0xd0, 372 0xef,0xf3,0x10,0x85,0xed,0xb2,0x01,0x27,0x87,0xf3,0x10,0x88,0x23,0x81,0x20,0x82, 373 0xe2,0x80,0xe1,0x81,0x1d,0x4b,0x30,0x69,0x98,0x47,0x85,0xf3,0x10,0x88,0xe0,0x7c, 374 0xfd,0x21,0x08,0x40,0xe0,0x74,0x1a,0x49,0x01,0x98,0x88,0x47,0xe0,0x7c,0x40,0x08, 375 0x40,0x00,0xe0,0x74,0x17,0x49,0x40,0x22,0x09,0x7f,0x11,0x40,0x00,0xd0,0x01,0x21, 376 0x00,0x29,0x19,0xd0,0x80,0x07,0x17,0xd4,0x0c,0x23,0x14,0x4d,0x3e,0x22,0x12,0x48, 377 0x01,0x99,0xa8,0x47,0x07,0x21,0x01,0x70,0x01,0x99,0x41,0x80,0x21,0x89,0x01,0x81, 378 0x21,0x8a,0x41,0x81,0xe1,0x88,0x81,0x80,0xe1,0x89,0xc1,0x80,0x0c,0x49,0x88,0x47, 379 0xe0,0x7c,0x02,0x21,0x08,0x43,0xe0,0x74,0x00,0x98,0x05,0xb0,0xf0,0xbd,0x00,0x00, 380 0x64,0x69,0x00,0x20,0x25,0xc4,0x00,0x00,0x3d,0xbb,0x00,0x00,0x95,0x26,0x01,0x00, 381 0xe5,0xb7,0x00,0x00,0xb8,0x68,0x00,0x20,0x04,0x08,0x00,0x00,0xf5,0x9d,0x00,0x00, 382 0xb5,0x8f,0x00,0x00,0xff,0xb5,0x85,0xb0,0x0c,0x46,0x1d,0x46,0x00,0x20,0x04,0x90, 383 0x59,0x49,0x20,0x46,0x88,0x47,0x03,0x90,0x05,0x98,0x81,0x00,0x57,0x48,0x46,0x58, 384 0xa5,0x20,0x80,0x5d,0x00,0x07,0x04,0xd5,0x55,0x4a,0x3d,0x21,0x05,0x98,0x90,0x47, 385 0x9f,0xe0,0xff,0x20,0x53,0x4a,0x21,0x46,0x03,0x30,0x90,0x47,0x68,0x46,0x02,0x7b, 386 0x01,0x20,0x90,0x43,0x08,0xd0,0x00,0x20,0x00,0x28,0x7d,0xd0,0x30,0x46,0xa0,0x30, 387 0xc1,0x78,0x04,0x29,0x02,0xd0,0x87,0xe0,0x01,0x20,0xf5,0xe7,0x69,0x88,0x1b,0x29, 388 0x72,0xd3,0xe9,0x88,0x1b,0x29,0x7f,0xd3,0xab,0x88,0xff,0x21,0x49,0x31,0x8b,0x42, 389 0x7a,0xd3,0x2b,0x89,0x8b,0x42,0x77,0xd3,0x00,0x21,0xc1,0x70,0x51,0x08,0x49,0x00, 390 0x03,0x91,0x41,0x4a,0x20,0x46,0x90,0x47,0x34,0x46,0x40,0x34,0xa0,0x88,0xe9,0x88, 391 0x88,0x42,0x00,0xd3,0x08,0x46,0x80,0xb2,0x02,0x90,0xa0,0x89,0x29,0x89,0x88,0x42, 392 0x00,0xd3,0x08,0x46,0x80,0xb2,0x01,0x90,0x60,0x88,0x69,0x88,0x88,0x42,0x00,0xd3, 393 0x08,0x46,0x87,0xb2,0x60,0x89,0xa9,0x88,0x88,0x42,0x00,0xd3,0x08,0x46,0x85,0xb2, 394 0x32,0x4b,0x30,0x69,0x29,0x46,0x01,0x9a,0x98,0x47,0x21,0x89,0x02,0x98,0x81,0x42, 395 0x09,0xd1,0x21,0x8a,0x01,0x98,0x81,0x42,0x05,0xd1,0xe0,0x88,0xb8,0x42,0x02,0xd1, 396 0xe0,0x89,0xa8,0x42,0x1a,0xd0,0x67,0x80,0x65,0x81,0xef,0xf3,0x10,0x80,0xc0,0xb2, 397 0x00,0x90,0x01,0x20,0x80,0xf3,0x10,0x88,0x02,0x98,0x20,0x81,0x01,0x98,0x20,0x82, 398 0xe7,0x80,0xe5,0x81,0x22,0x4b,0x3a,0x46,0x29,0x46,0x30,0x69,0x98,0x47,0x00,0x98, 399 0x80,0xf3,0x10,0x88,0xe0,0x7c,0xfd,0x21,0x08,0x40,0xe0,0x74,0x1d,0x48,0x40,0x21, 400 0x00,0x7f,0x08,0x40,0x00,0xd0,0x01,0x20,0x00,0x28,0x22,0xd0,0xe0,0x7c,0x80,0x07, 401 0x1f,0xd4,0x0c,0x23,0x19,0x4d,0x3e,0x22,0x17,0x48,0x05,0x99,0xa8,0x47,0x07,0x21, 402 0x01,0x70,0x05,0x99,0x41,0x80,0x00,0xe0,0x0e,0xe0,0x21,0x89,0x01,0x81,0x21,0x8a, 403 0x41,0x81,0xe1,0x88,0x81,0x80,0xe1,0x89,0xc1,0x80,0x11,0x49,0x88,0x47,0xe0,0x7c, 404 0x02,0x21,0x08,0x43,0xe0,0x74,0x04,0xe0,0x0e,0x4b,0x29,0x78,0x20,0x22,0x05,0x98, 405 0x98,0x47,0x04,0x98,0x09,0xb0,0xf0,0xbd,0x0d,0x9f,0x00,0x00,0x64,0x69,0x00,0x20, 406 0x25,0xc4,0x00,0x00,0x89,0xa1,0x00,0x00,0x31,0x9f,0x00,0x00,0x71,0x25,0x01,0x00, 407 0x95,0x26,0x01,0x00,0xb8,0x68,0x00,0x20,0x04,0x08,0x00,0x00,0xf5,0x9d,0x00,0x00, 408 0xb5,0x8f,0x00,0x00,0x3d,0xbb,0x00,0x00,0xf8,0xb5,0x04,0x46,0x00,0x2c,0x18,0xd0, 409 0x26,0x46,0x28,0x36,0x20,0x7a,0x07,0x07,0x3f,0x0f,0x47,0x49,0x20,0x46,0x88,0x47, 410 0x00,0x28,0x01,0xd0,0x45,0x49,0x88,0x47,0x35,0x46,0x80,0x35,0xe8,0x78,0x00,0x28, 411 0x1e,0xd1,0xa8,0x79,0xc0,0x06,0x05,0xd5,0x00,0x22,0x41,0x4b,0x01,0x21,0x20,0x46, 412 0x98,0x47,0xf8,0xbd,0x3f,0x48,0x80,0x47,0x3f,0x48,0xc0,0x6a,0x20,0x30,0x40,0x78, 413 0x00,0x28,0x01,0xd0,0x04,0x20,0x00,0xe0,0x05,0x20,0x05,0x28,0x08,0xd1,0x21,0x89, 414 0x70,0x6e,0x40,0x1a,0x00,0xb2,0x00,0x28,0x00,0xdc,0x01,0x20,0x37,0x49,0x08,0x85, 415 0xe8,0x78,0x01,0x28,0x1f,0xd1,0xa8,0x79,0xc0,0x06,0x05,0xd5,0x00,0x22,0x30,0x4b, 416 0x01,0x21,0x20,0x46,0x98,0x47,0xf8,0xbd,0x21,0x89,0x70,0x6e,0x40,0x1a,0x00,0xb2, 417 0x00,0x28,0x00,0xdc,0x01,0x20,0x2d,0x49,0x08,0x85,0x01,0x22,0xd2,0x03,0x02,0x43, 418 0x4a,0x84,0x60,0x68,0x00,0x28,0x06,0xd0,0x29,0x49,0x20,0x46,0x88,0x47,0x40,0x08, 419 0x40,0x1e,0x26,0x49,0xc8,0x84,0x00,0x20,0x26,0x49,0xba,0x00,0x57,0x18,0x38,0x80, 420 0x21,0x46,0xe8,0x78,0x68,0x31,0x00,0x91,0x04,0x28,0x01,0xd0,0x03,0x28,0x0a,0xd1, 421 0x00,0x98,0x21,0x49,0x80,0x8f,0x88,0x47,0x28,0x88,0x61,0x7e,0x40,0x1a,0x1f,0x49, 422 0x48,0x43,0x1f,0x49,0xc8,0x63,0x00,0x98,0x81,0x8f,0x02,0x8d,0x5a,0x23,0x59,0x43, 423 0x1c,0x4b,0xc9,0x18,0x0a,0x83,0x39,0x88,0x30,0x22,0x91,0x43,0x39,0x80,0x02,0x21, 424 0x3a,0x88,0x12,0x09,0x12,0x01,0x0a,0x43,0x3a,0x80,0xc0,0x8f,0x78,0x80,0x30,0x46, 425 0x00,0xf0,0x9e,0xfa,0x15,0x4a,0x21,0x46,0x13,0x48,0x90,0x47,0xe8,0x78,0x01,0x28, 426 0x01,0xd0,0x00,0x28,0xaf,0xd1,0x12,0x4c,0x60,0x79,0x00,0x28,0xab,0xd0,0x11,0x48, 427 0x80,0x47,0x00,0x20,0x60,0x71,0xf8,0xbd,0xa9,0xee,0x00,0x00,0xf1,0x9a,0x00,0x00, 428 0x49,0xeb,0x00,0x00,0xdd,0x40,0x01,0x00,0x78,0x68,0x00,0x20,0xe8,0x41,0x80,0x50, 429 0x81,0xea,0x00,0x00,0x00,0x40,0x80,0x50,0x69,0x26,0x01,0x00,0x71,0x02,0x00,0x00, 430 0xc0,0x7e,0x00,0x20,0xc0,0x40,0x80,0x50,0x74,0x69,0x00,0x20,0xa7,0x3c,0x00,0x00, 431 0xd4,0x69,0x00,0x20,0x25,0x28,0x01,0x00,0xf0,0xb5,0x91,0xb0,0x04,0x46,0x7d,0x49, 432 0x06,0xa8,0x88,0x47,0x7c,0x20,0x00,0x5b,0x05,0x90,0x00,0x25,0x00,0x21,0x04,0x91, 433 0x5a,0x21,0x48,0x43,0x78,0x49,0x40,0x18,0x40,0x8a,0x03,0x90,0x01,0x20,0x80,0xf3, 434 0x10,0x88,0x60,0x6c,0x00,0x21,0x81,0xf3,0x10,0x88,0x26,0x46,0x60,0x36,0x00,0x28, 435 0x7a,0xd0,0x21,0x46,0x44,0x31,0x10,0x91,0x28,0x39,0x0f,0x91,0x03,0x99,0x89,0x05, 436 0xc9,0x0f,0x0e,0x91,0x21,0x46,0x80,0x31,0x0d,0x91,0x81,0x88,0xca,0x00,0x6b,0x49, 437 0x51,0x18,0x89,0x8e,0xc9,0x0b,0x00,0x29,0x66,0xd0,0x01,0x21,0x81,0xf3,0x10,0x88, 438 0x00,0x68,0x02,0x90,0x66,0x49,0x10,0x98,0x88,0x47,0x07,0x46,0xe0,0x69,0x00,0x28, 439 0x03,0xd0,0x00,0x20,0x00,0x28,0x02,0xd0,0x08,0xe0,0x01,0x20,0xfa,0xe7,0x60,0x49, 440 0x0f,0x98,0x88,0x47,0x00,0x28,0x01,0xd0,0x5e,0x49,0x88,0x47,0x00,0x20,0x80,0xf3, 441 0x10,0x88,0xb8,0x88,0x59,0x49,0xc0,0x00,0x40,0x18,0x82,0x8e,0xd2,0x0b,0xd2,0x03, 442 0x82,0x86,0xb8,0x88,0x04,0x28,0x1e,0xd2,0x30,0x7e,0x40,0x1e,0x30,0x76,0x01,0x20, 443 0x80,0xf3,0x10,0x88,0x20,0x6b,0x00,0x28,0x13,0xd0,0x00,0x20,0x00,0x28,0x05,0xd0, 444 0x0d,0x98,0xfb,0x21,0x80,0x79,0x08,0x40,0x0d,0x99,0x88,0x71,0x4d,0x49,0x38,0x46, 445 0x88,0x47,0x00,0x20,0x80,0xf3,0x10,0x88,0x4b,0x4a,0x39,0x7b,0x05,0x98,0x90,0x47, 446 0x1f,0xe0,0x01,0x20,0xea,0xe7,0x06,0x28,0x19,0xd9,0xc0,0x00,0x40,0x18,0xc0,0x8e, 447 0x00,0x0a,0x01,0x90,0x45,0x49,0x38,0x46,0x88,0x47,0x00,0x28,0x04,0xd0,0x01,0x98, 448 0x00,0x28,0x01,0xd0,0x6d,0x1c,0xed,0xb2,0x0e,0x99,0x01,0x98,0xff,0xf7,0xe6,0xfa, 449 0x01,0x46,0x3f,0x48,0xc2,0x6b,0x51,0x1a,0xc1,0x63,0x02,0xe0,0x04,0xe0,0x6d,0x1c, 450 0xed,0xb2,0x02,0x98,0x00,0x28,0x90,0xd1,0x05,0x98,0x04,0x28,0x0e,0xd0,0x00,0x2d, 451 0x0c,0xd0,0x01,0x20,0x80,0xf3,0x10,0x88,0x30,0x7e,0x40,0x1b,0x30,0x76,0x00,0x20, 452 0x80,0xf3,0x10,0x88,0x33,0x4a,0x29,0x46,0x05,0x98,0x90,0x47,0x01,0x20,0x80,0xf3, 453 0x10,0x88,0x31,0x48,0x2a,0x4e,0x0c,0x90,0xb0,0x47,0x04,0x46,0x00,0x20,0x80,0xf3, 454 0x10,0x88,0x20,0x00,0x42,0xd0,0x03,0x98,0x2c,0x4f,0xc0,0x05,0xc0,0x0f,0x0b,0x90, 455 0xe0,0x88,0x05,0x99,0x88,0x42,0x1b,0xd1,0x04,0x28,0x0f,0xd0,0xa1,0x7a,0x00,0x91, 456 0xe3,0x7a,0x22,0x7b,0x21,0x89,0xb8,0x47,0xa0,0x7a,0x0b,0x99,0xff,0xf7,0xa6,0xfa, 457 0x01,0x46,0x1f,0x48,0xc2,0x6b,0x51,0x1a,0xc1,0x63,0x05,0xe0,0x20,0x4b,0x21,0x79, 458 0x20,0x89,0x2a,0x46,0x98,0x47,0x04,0x90,0x16,0x49,0x20,0x46,0x88,0x47,0x03,0xe0, 459 0x1c,0x4a,0x21,0x46,0x06,0xa8,0x90,0x47,0x01,0x20,0x80,0xf3,0x10,0x88,0x0c,0x98, 460 0xb0,0x47,0x04,0x46,0x20,0x00,0x0c,0xd1,0x06,0x98,0x00,0x28,0x03,0xd0,0x00,0x20, 461 0x00,0x28,0x02,0xd0,0x05,0xe0,0x01,0x20,0xfa,0xe7,0x13,0x4a,0x06,0xa9,0x0c,0x98, 462 0x90,0x47,0x00,0x20,0x80,0xf3,0x10,0x88,0x00,0x2c,0xc1,0xd1,0x04,0x98,0x11,0xb0, 463 0xf0,0xbd,0x00,0x00,0xf5,0x3b,0x00,0x00,0x80,0x40,0x80,0x50,0x00,0x43,0x80,0x50, 464 0x85,0x3c,0x00,0x00,0xf1,0x9a,0x00,0x00,0x59,0xc0,0x00,0x00,0xdd,0x5c,0x00,0x00, 465 0xc0,0x7e,0x00,0x20,0x55,0xbf,0x00,0x00,0xb0,0x69,0x00,0x20,0x79,0xbf,0x00,0x00, 466 0xbd,0x35,0x01,0x00,0xa7,0x3c,0x00,0x00,0x4f,0x3c,0x00,0x00,0xf8,0xb5,0x06,0x46, 467 0x00,0x21,0x31,0x4a,0x10,0x20,0x90,0x47,0x04,0x46,0x00,0x25,0x00,0x2c,0x54,0xd0, 468 0x35,0x46,0x28,0x88,0x2d,0x4f,0x80,0x00,0x38,0x58,0x06,0x69,0x28,0x36,0x30,0x46, 469 0x08,0x30,0xa9,0x68,0xe1,0x60,0x29,0x88,0xe1,0x80,0xa9,0x88,0x21,0x81,0xa9,0x78, 470 0xa1,0x72,0x2f,0x21,0xa1,0x80,0x01,0x21,0x81,0xf3,0x10,0x88,0x24,0x4a,0x21,0x46, 471 0x90,0x47,0x00,0x20,0x80,0xf3,0x10,0x88,0x01,0x25,0xe0,0x88,0x5a,0x21,0x48,0x43, 472 0x20,0x49,0x40,0x18,0x42,0x8a,0x12,0x0b,0x02,0x2a,0x05,0xd3,0x42,0x8a,0x12,0x05, 473 0x12,0x0d,0x2b,0x03,0x1a,0x43,0x42,0x82,0xe0,0x88,0x82,0x00,0xba,0x58,0x12,0x69, 474 0x28,0x32,0x00,0x92,0x5a,0x22,0x50,0x43,0x40,0x18,0x44,0x8a,0x00,0x9a,0x80,0x32, 475 0x90,0x78,0x00,0x28,0x19,0xd0,0xa0,0x05,0xc1,0x0f,0x72,0x20,0x80,0x5b,0xff,0xf7, 476 0x0d,0xfa,0x07,0x46,0xe0,0x05,0xc1,0x0f,0x00,0x20,0xff,0xf7,0x07,0xfa,0x60,0x36, 477 0x31,0x7e,0x38,0x18,0x49,0x1c,0x48,0x43,0x0b,0x49,0x40,0x18,0x0b,0x49,0xc9,0x6b, 478 0x88,0x42,0x02,0xd2,0x00,0x98,0x00,0xf0,0xf3,0xf8,0x00,0x2d,0x01,0xd0,0x01,0x20, 479 0xf8,0xbd,0x00,0x20,0xf8,0xbd,0x00,0x00,0x75,0x9c,0x00,0x00,0x64,0x69,0x00,0x20, 480 0xa7,0x3c,0x00,0x00,0x80,0x40,0x80,0x50,0x71,0x02,0x00,0x00,0xc0,0x7e,0x00,0x20, 481 0xf3,0xb5,0x85,0xb0,0x65,0x4a,0x04,0x92,0x16,0x78,0x4a,0x1e,0xd2,0xb2,0x06,0x92, 482 0x00,0x29,0x72,0xd0,0x01,0x46,0x40,0x31,0x03,0x91,0x61,0x49,0x05,0x46,0x80,0x35, 483 0x02,0x91,0xa8,0x79,0xc0,0x06,0x69,0xd4,0x01,0x21,0x5e,0x4a,0x10,0x20,0x90,0x47, 484 0x04,0x46,0x0c,0x20,0x5c,0x4f,0x70,0x43,0xc0,0x19,0x01,0x8e,0x26,0x71,0x03,0x9a, 485 0x92,0x8f,0xe2,0x80,0xc2,0x8d,0x22,0x81,0x23,0x46,0x0b,0x33,0x9c,0x46,0x5b,0x1c, 486 0x22,0x46,0x9e,0x46,0x40,0x8e,0xc3,0x0b,0x53,0x73,0x82,0x04,0x92,0x0e,0x63,0x46, 487 0x1a,0x70,0x73,0x46,0x18,0x70,0x00,0x20,0x60,0x71,0xa8,0x79,0xc2,0x07,0x05,0xd0, 488 0x22,0x7a,0x52,0x06,0x02,0xd4,0x40,0x08,0x40,0x00,0xa8,0x71,0xe0,0x88,0x04,0x28, 489 0x6f,0xd0,0x08,0x0a,0xa0,0x72,0xa8,0x79,0x82,0x07,0x0f,0xd5,0x22,0x7a,0xd2,0x07, 490 0x0c,0xd1,0xfd,0x22,0x10,0x40,0xa8,0x71,0xe0,0x88,0xff,0x23,0x82,0x00,0x43,0x48, 491 0x80,0x58,0x40,0x30,0x82,0x8b,0x01,0x33,0x1a,0x43,0x82,0x83,0x22,0x89,0xff,0x20, 492 0x40,0x30,0x02,0x40,0x45,0xd1,0xa0,0x7a,0x00,0x28,0x42,0xd0,0x89,0x07,0x89,0x0f, 493 0x01,0x91,0xe1,0x88,0x39,0x4a,0x8b,0x00,0xd2,0x58,0xa0,0x32,0x52,0x79,0x92,0x07, 494 0x01,0xd5,0x00,0x1f,0xa0,0x72,0x01,0x98,0x01,0x28,0x1f,0xd0,0x02,0x28,0x1d,0xd0, 495 0x03,0x28,0x0c,0xd0,0x20,0x79,0x0c,0x21,0x48,0x43,0xc0,0x19,0x81,0x8d,0x49,0x04, 496 0x49,0x0c,0x81,0x85,0x01,0x20,0x60,0x71,0x33,0xe0,0x4a,0xe0,0x36,0xe0,0x2c,0x4a, 497 0xa1,0x7a,0x20,0x46,0x90,0x47,0x20,0x79,0x0c,0x21,0x48,0x43,0xc0,0x19,0x81,0x8d, 498 0x49,0x04,0x49,0x0c,0x81,0x85,0x01,0x20,0x60,0x71,0x22,0xe0,0x08,0x02,0x40,0x1c, 499 0x81,0xb2,0x08,0x23,0x23,0x4f,0x0a,0x46,0x58,0x01,0xb8,0x47,0xe1,0x88,0x01,0x80, 500 0xa1,0x7a,0x81,0x80,0x01,0x99,0x81,0x70,0x21,0x79,0x81,0x71,0x1e,0x49,0x88,0x47, 501 0x0f,0xe0,0x00,0x2a,0x03,0xd0,0xa8,0x79,0x01,0x21,0x08,0x43,0xa8,0x71,0x20,0x79, 502 0x0c,0x21,0x48,0x43,0xc0,0x19,0x81,0x8d,0x49,0x04,0x49,0x0c,0x81,0x85,0x01,0x20, 503 0x60,0x71,0x16,0x4a,0x21,0x46,0x02,0x98,0x90,0x47,0x08,0xe0,0x0c,0x20,0x31,0x46, 504 0x41,0x43,0x0d,0x48,0x08,0x18,0x81,0x8d,0x49,0x04,0x49,0x0c,0x81,0x85,0x76,0x1c, 505 0x76,0x07,0x76,0x0f,0x06,0x98,0x41,0x1e,0xc9,0xb2,0x06,0x91,0x00,0x28,0x00,0xd0, 506 0x47,0xe7,0x04,0x98,0x06,0x70,0x07,0xb0,0xf0,0xbd,0x00,0x00,0x5c,0x6c,0x00,0x20, 507 0xb0,0x69,0x00,0x20,0x75,0x9c,0x00,0x00,0x80,0x44,0x80,0x50,0x64,0x69,0x00,0x20, 508 0xad,0x14,0x01,0x00,0xf5,0x9d,0x00,0x00,0x31,0x9e,0x00,0x00,0xa7,0x3c,0x00,0x00, 509 0xf1,0xb5,0x92,0xb0,0x12,0x98,0x40,0x30,0x11,0x90,0x80,0x8f,0x0e,0x90,0x12,0x98, 510 0x08,0x30,0x0d,0x90,0x12,0x98,0x30,0x30,0x0c,0x90,0x12,0x98,0x44,0x30,0x0b,0x90, 511 0x00,0x20,0x0a,0x90,0x01,0x25,0x0c,0x98,0x04,0x68,0x00,0x2c,0x03,0xd0,0x00,0x20, 512 0x00,0x28,0x02,0xd0,0x8a,0xe0,0x01,0x20,0xfa,0xe7,0x0e,0x98,0xc1,0x00,0xcc,0x48, 513 0x08,0x18,0x10,0x90,0x80,0x8e,0xc0,0x0b,0x00,0x28,0x7f,0xd0,0x0e,0x98,0xc9,0x49, 514 0x80,0x00,0x0f,0x90,0x08,0x58,0xa0,0x30,0x46,0x79,0x01,0x20,0x71,0x07,0x15,0xd5, 515 0x00,0x2c,0x13,0xd0,0xc4,0x4f,0xb0,0x06,0x03,0xd5,0x20,0x7b,0xb8,0x47,0x00,0x20, 516 0x04,0xe0,0x20,0x7b,0xb8,0x47,0x00,0x28,0x03,0xd0,0x01,0x20,0x00,0x28,0x02,0xd0, 517 0x04,0xe0,0x00,0x20,0xfa,0xe7,0x24,0x68,0x00,0x2c,0xec,0xd1,0x00,0x28,0x5d,0xd0, 518 0xba,0x4b,0x00,0x22,0x21,0x46,0x0c,0x98,0x98,0x47,0xa7,0x68,0xb8,0x4a,0x09,0xa9, 519 0x38,0x46,0x90,0x47,0x00,0x28,0x51,0xd1,0xa0,0x88,0x39,0x46,0xb0,0x4e,0xc0,0x00, 520 0x80,0x19,0x00,0x8f,0x08,0xaa,0x12,0x79,0xb2,0x4b,0xc0,0x18,0xfe,0xf7,0x8e,0xfe, 521 0xb1,0x49,0xa0,0x68,0x88,0x47,0xab,0x49,0x0f,0x98,0x08,0x58,0xa0,0x30,0x40,0x79, 522 0xc0,0x07,0x03,0xd0,0x08,0xa9,0x08,0x79,0x00,0x1d,0x09,0x90,0x08,0xa8,0x01,0x79, 523 0x10,0x98,0xc2,0x8e,0x09,0x02,0xd2,0xb2,0x0a,0x43,0xc2,0x86,0x03,0x21,0x10,0x98, 524 0xc2,0x8e,0x8a,0x43,0x0a,0x43,0xc2,0x86,0x11,0x98,0x80,0x8f,0x00,0x21,0xc0,0x00, 525 0x80,0x19,0x81,0x86,0x0b,0x98,0x00,0x68,0x00,0x28,0x03,0xd0,0x00,0x20,0x00,0x28, 526 0x02,0xd0,0x10,0xe0,0x01,0x20,0xfa,0xe7,0x0b,0x98,0xa1,0x88,0x40,0x68,0xca,0x00, 527 0xcd,0x21,0x80,0x88,0x89,0x00,0x51,0x18,0xc0,0x00,0x80,0x19,0x82,0x8e,0xd2,0x0b, 528 0xd2,0x03,0x0a,0x43,0x82,0x86,0x95,0x4a,0x21,0x46,0x0b,0x98,0x90,0x47,0x12,0x98, 529 0x60,0x30,0x01,0x7e,0x49,0x1c,0x00,0xe0,0x00,0xe0,0x01,0x76,0x11,0x98,0x80,0x8f, 530 0x04,0x28,0x08,0xd2,0x0e,0x99,0x8a,0x00,0x86,0x49,0x89,0x58,0xa0,0x31,0x49,0x79, 531 0x49,0x07,0x00,0xd5,0x00,0x25,0x0d,0x99,0x09,0x68,0x00,0x29,0x1f,0xd0,0x00,0x21, 532 0x2a,0x46,0x8a,0x43,0x76,0xd0,0x04,0x28,0x75,0xd2,0x86,0x49,0x84,0x48,0x88,0x47, 533 0x09,0x90,0x00,0x20,0x08,0x90,0x11,0x98,0x80,0x8f,0x81,0x00,0x79,0x48,0x40,0x58, 534 0xa0,0x30,0x40,0x79,0xc0,0x07,0xc0,0x0f,0x07,0x90,0x0d,0x98,0x06,0x68,0x00,0x2e, 535 0x09,0xd0,0x0d,0x99,0x30,0x68,0x08,0x60,0x00,0x28,0x02,0xd0,0x03,0xe0,0x01,0x21, 536 0xde,0xe7,0x0d,0x99,0x48,0x60,0x00,0x2e,0x7e,0xd0,0x00,0x20,0x06,0x90,0x12,0x98, 537 0x03,0x90,0x09,0x98,0x07,0x9b,0x04,0x90,0x05,0x93,0x08,0x25,0x75,0x5f,0x00,0x27, 538 0x00,0x20,0x02,0x90,0x01,0x20,0x01,0x90,0x11,0x9a,0x51,0x8e,0xcc,0xb2,0x28,0x46, 539 0x09,0x30,0x80,0xb2,0x05,0x9b,0x00,0x2b,0x01,0xd0,0x00,0x1d,0x80,0xb2,0xc0,0x00, 540 0x08,0x30,0x83,0xb2,0x10,0x8e,0x98,0x42,0x05,0xd2,0x50,0x38,0x40,0x05,0x04,0x0e, 541 0xa1,0x42,0x00,0xd2,0xcc,0xb2,0xa5,0x42,0x01,0xdd,0x64,0x08,0x64,0x00,0x21,0x46, 542 0x68,0x1e,0xfe,0xf7,0xe9,0xfd,0x40,0x1c,0xc0,0xb2,0x04,0x99,0x88,0x42,0x01,0xd9, 543 0x00,0x25,0x2f,0xe0,0x06,0x90,0x5a,0x48,0xfe,0xf7,0xe4,0xfd,0x01,0x46,0x01,0x98, 544 0x00,0x28,0x0f,0xd0,0x00,0x20,0x01,0x90,0xb0,0x7a,0x80,0x07,0x80,0x0f,0x01,0x28, 545 0x06,0xd0,0x02,0x20,0x88,0x72,0xf0,0x68,0xc7,0x88,0x80,0x88,0x02,0x90,0x05,0xe0, 546 0x01,0x20,0xf7,0xe7,0x01,0x20,0x88,0x72,0x38,0x19,0x87,0xb2,0xa5,0x42,0x03,0xdd, 547 0xcc,0x72,0x02,0xe0,0x57,0xe0,0x4d,0xe0,0xcd,0x72,0x02,0x98,0xc8,0x80,0x0f,0x81, 548 0x28,0x1b,0x05,0xb2,0x00,0x2d,0x23,0xdc,0x01,0x22,0x05,0x9b,0x03,0x98,0xfe,0xf7, 549 0xbf,0xfd,0x01,0x25,0x00,0x2d,0x21,0xd0,0x68,0x46,0x00,0x7e,0x08,0x99,0x09,0x18, 550 0xc9,0xb2,0x08,0x91,0x09,0x99,0x08,0x1a,0x80,0xb2,0x09,0x90,0x12,0x98,0xc0,0x69, 551 0x00,0x28,0x1d,0xd0,0x12,0x98,0x00,0x6a,0x06,0x60,0x12,0x98,0x06,0x62,0x00,0x20, 552 0x30,0x60,0x08,0x98,0x0a,0x28,0x00,0xe0,0x28,0xe0,0x14,0xd9,0x00,0x25,0x25,0xe0, 553 0x00,0x22,0x05,0x9b,0x03,0x98,0xfe,0xf7,0x9b,0xfd,0xac,0xe7,0x0d,0x98,0x00,0x68, 554 0x00,0x28,0x01,0xd1,0x0d,0x99,0x4e,0x60,0x30,0x60,0x0d,0x98,0x06,0x60,0x15,0xe0, 555 0x12,0x98,0xc6,0x61,0xe1,0xe7,0x0d,0x98,0x06,0x68,0x00,0x2e,0x06,0xd0,0x0d,0x99, 556 0x30,0x68,0x08,0x60,0x00,0x28,0x01,0xd1,0x0d,0x99,0x48,0x60,0x00,0x2e,0x00,0xd0, 557 0x5b,0xe7,0x03,0xe0,0x24,0x4a,0x0d,0x99,0x0b,0x98,0x90,0x47,0x00,0x2d,0x02,0xd0, 558 0x22,0x49,0x0d,0x98,0x88,0x47,0x0b,0x98,0x00,0x68,0x00,0x28,0x03,0xd0,0x00,0x21, 559 0x00,0x29,0x02,0xd0,0x1b,0xe0,0x01,0x21,0xfa,0xe7,0x00,0x28,0x0a,0xd0,0x10,0x4a, 560 0x81,0x88,0xc9,0x00,0x89,0x18,0x89,0x8e,0xc9,0x0b,0x00,0x29,0x05,0xd0,0x00,0x68, 561 0x00,0x28,0xf5,0xd1,0x00,0x28,0x08,0xd0,0x09,0xe0,0x81,0x88,0xca,0x00,0xcd,0x21, 562 0x89,0x00,0x51,0x18,0x89,0xb2,0x0a,0x91,0xf4,0xe7,0x00,0x20,0x0a,0x90,0x0a,0x99, 563 0x0e,0x98,0x5a,0x22,0x50,0x43,0x0e,0x4a,0x80,0x18,0x81,0x84,0x13,0xb0,0xf0,0xbd, 564 0x00,0x43,0x80,0x50,0x64,0x69,0x00,0x20,0x99,0xb7,0x00,0x00,0x57,0x3b,0x00,0x00, 565 0x85,0x14,0x01,0x00,0x00,0x40,0x80,0x50,0xf1,0x9a,0x00,0x00,0xa7,0x3c,0x00,0x00, 566 0xdc,0x69,0x00,0x20,0xfb,0x3c,0x00,0x00,0x4f,0x3c,0x00,0x00,0xf5,0x3b,0x00,0x00, 567 0x80,0x40,0x80,0x50,0x10,0xb5,0x19,0x48,0x80,0x7a,0xc0,0x07,0x01,0xd0,0x00,0x20, 568 0x10,0xbd,0x17,0x48,0x80,0x47,0x05,0x20,0x00,0x07,0xc0,0x69,0x15,0x49,0x00,0x05, 569 0x04,0xd0,0x08,0x78,0x01,0x28,0x15,0xd0,0x02,0x28,0x13,0xd0,0x08,0x78,0x00,0x28, 570 0x08,0xd0,0x01,0x28,0x06,0xd0,0x02,0x28,0x04,0xd0,0x0f,0x48,0x80,0x47,0x0f,0x49, 571 0x32,0x20,0x88,0x47,0x0e,0x48,0x41,0x68,0x0d,0x29,0x08,0xd0,0x40,0x68,0x0e,0x28, 572 0x05,0xd0,0x06,0xe0,0x0b,0x49,0x04,0x20,0x88,0x47,0x01,0x20,0x10,0xbd,0x0a,0x48, 573 0x80,0x47,0x0a,0x49,0x04,0x20,0x88,0x47,0x00,0x20,0x10,0xbd,0x0c,0x6e,0x00,0x20, 574 0x51,0x9a,0x00,0x00,0x18,0x10,0x00,0x20,0x69,0x61,0x01,0x00,0xe5,0x3e,0x00,0x00, 575 0x40,0x00,0x80,0x45,0xa1,0x59,0x01,0x00,0xd3,0x60,0x01,0x00,0x59,0x59,0x01,0x00, 576 0x41,0xb2,0x15,0x48,0x00,0x88,0x15,0x4a,0x90,0x42,0x01,0xd1,0x41,0x20,0x1e,0xe0, 577 0x13,0x4a,0x90,0x42,0x01,0xd1,0x3c,0x20,0x19,0xe0,0x12,0x4a,0x90,0x42,0x01,0xd1, 578 0x37,0x20,0x14,0xe0,0x10,0x4a,0x90,0x42,0x01,0xd1,0x32,0x20,0x0f,0xe0,0x0f,0x4a, 579 0x90,0x42,0x01,0xd1,0x2d,0x20,0x0a,0xe0,0x0d,0x4a,0x90,0x42,0x01,0xd1,0x37,0x20, 580 0x05,0xe0,0x0c,0x4a,0x90,0x42,0x01,0xd1,0x2f,0x20,0x00,0xe0,0x28,0x20,0x40,0x42, 581 0x40,0x18,0x40,0xb2,0x70,0x47,0x00,0x00,0x50,0x68,0x00,0x20,0xf6,0x3f,0x00,0x00, 582 0xf6,0x38,0x00,0x00,0xf6,0x2d,0x00,0x00,0xf6,0x09,0x00,0x00,0xf6,0x07,0x00,0x00, 583 0xf6,0x20,0x00,0x00,0x96,0x20,0x00,0x00,0x70,0xb5,0x42,0x48,0x41,0x68,0x0d,0x29, 584 0x06,0xd0,0x0d,0x21,0x41,0x60,0x40,0x49,0x01,0x20,0x88,0x47,0x3f,0x48,0x80,0x47, 585 0x43,0x24,0x24,0x06,0x60,0x68,0x01,0x22,0x52,0x03,0x10,0x43,0x60,0x60,0x29,0x20, 586 0x3b,0x49,0x40,0x06,0xc1,0x60,0x01,0x6a,0x09,0x09,0x09,0x01,0x08,0x31,0x01,0x62, 587 0x01,0x68,0xd3,0x10,0x19,0x43,0x01,0x60,0x36,0x49,0x09,0x78,0x49,0x00,0x49,0x1c, 588 0x41,0x61,0x61,0x68,0x34,0x4e,0x91,0x43,0x30,0x78,0xc0,0x07,0xc0,0x0f,0x42,0x03, 589 0x11,0x43,0x61,0x60,0x31,0x49,0x09,0x78,0x3c,0x29,0x0b,0xd1,0x62,0x68,0x99,0x01, 590 0x0a,0x43,0x62,0x60,0x2e,0x4b,0x06,0x22,0xda,0x63,0x62,0x68,0x8a,0x43,0x01,0x04, 591 0x0a,0x43,0x62,0x60,0x61,0x68,0x01,0x22,0x12,0x05,0x11,0x43,0x61,0x60,0x28,0x25, 592 0xa3,0x21,0xc9,0x05,0x0d,0x60,0x27,0x4b,0x1b,0x88,0x8b,0x62,0x61,0x68,0x00,0x05, 593 0x91,0x43,0x01,0x43,0x61,0x60,0xfe,0xf7,0x61,0xfc,0x80,0x02,0x80,0x0a,0x29,0x07, 594 0x01,0x43,0x21,0x48,0x81,0x62,0x60,0x68,0xff,0x21,0x01,0x31,0x08,0x43,0x60,0x60, 595 0x1e,0x48,0x1f,0x4a,0x00,0x78,0xc3,0x07,0xdb,0x0f,0x53,0x61,0xc0,0x06,0xc0,0x0f, 596 0x90,0x61,0x1c,0x48,0x1c,0x4a,0x00,0x88,0x90,0x42,0x01,0xd0,0x1b,0x4a,0x50,0x62, 597 0x1b,0x48,0x02,0x78,0x1b,0x48,0x00,0x2a,0x01,0xd0,0x01,0x22,0x82,0x60,0x1a,0x4a, 598 0x12,0x78,0x00,0x2a,0x05,0xd0,0x45,0x62,0x18,0x4b,0x26,0x22,0x1a,0x61,0x02,0x22, 599 0xc2,0x62,0x60,0x68,0x88,0x43,0x31,0x78,0xc9,0x07,0xc9,0x0d,0x08,0x43,0x60,0x60, 600 0x70,0xbd,0x00,0x00,0x40,0x00,0x80,0x45,0xe5,0x3e,0x00,0x00,0xd3,0x60,0x01,0x00, 601 0xcc,0x34,0x63,0x04,0x74,0x68,0x00,0x20,0x3a,0x68,0x00,0x20,0x41,0x68,0x00,0x20, 602 0x00,0x00,0x40,0x52,0x50,0x68,0x00,0x20,0x00,0x01,0x80,0x50,0x35,0x68,0x00,0x20, 603 0x40,0x04,0xc0,0x50,0x52,0x68,0x00,0x20,0xff,0x0f,0x00,0x00,0x80,0x04,0xc0,0x50, 604 0x39,0x68,0x00,0x20,0x00,0x04,0xc0,0x50,0x36,0x68,0x00,0x20,0xc0,0x04,0xc0,0x50, 605 0xff,0xb5,0xff,0xb0,0x82,0xb0,0x05,0x46,0x0c,0x46,0x00,0x27,0x2d,0x49,0x02,0x20, 606 0x88,0x47,0x2d,0x48,0x80,0x47,0x2d,0x48,0x80,0x47,0x2d,0x48,0x80,0x47,0x2d,0x48, 607 0x2d,0x4b,0x00,0x78,0x2d,0x4e,0x00,0x28,0x02,0xd0,0x01,0x28,0x08,0xd0,0x1e,0xe0, 608 0x64,0x1e,0xa7,0xb2,0x28,0x78,0xb0,0x61,0x39,0x46,0x68,0x1c,0x98,0x47,0x16,0xe0, 609 0x69,0x46,0x0c,0x70,0x20,0x0a,0x48,0x70,0x00,0x22,0x68,0x46,0x00,0x2c,0x06,0xd9, 610 0xa9,0x5c,0x87,0x18,0xb9,0x70,0x52,0x1c,0x92,0xb2,0xa2,0x42,0xf8,0xd3,0x64,0x1c, 611 0xa7,0xb2,0x69,0x46,0x09,0x78,0xb1,0x61,0x39,0x46,0x40,0x1c,0x98,0x47,0x78,0x07, 612 0x40,0x0f,0xf1,0x68,0x09,0x07,0x09,0x0f,0x81,0x42,0xfa,0xd3,0x18,0x49,0x0a,0x20, 613 0x88,0x47,0x18,0x48,0x80,0x47,0x18,0x48,0x81,0x68,0x89,0x07,0xfc,0xd5,0x70,0x68, 614 0x80,0x07,0xfc,0xd5,0x08,0x20,0x70,0x60,0x00,0x20,0xb0,0x61,0x13,0x48,0x80,0x47, 615 0x13,0x48,0x80,0x47,0x83,0x9a,0x00,0x21,0x84,0x98,0x90,0x47,0x11,0x48,0x00,0x78, 616 0x00,0x28,0x03,0xd1,0x12,0x4a,0x10,0x49,0x10,0x48,0x90,0x47,0x7f,0xb0,0x06,0xb0, 617 0xf0,0xbd,0x00,0x00,0xa1,0x59,0x01,0x00,0xbd,0x60,0x01,0x00,0xe9,0x5f,0x00,0x00, 618 0xad,0x2d,0x00,0x00,0x3e,0x68,0x00,0x20,0x09,0x43,0x00,0x00,0x00,0x00,0xc0,0x52, 619 0xe5,0x3e,0x00,0x00,0x09,0x62,0x01,0x00,0xc0,0x02,0x00,0x50,0x9d,0x2d,0x00,0x00, 620 0xf5,0x61,0x01,0x00,0x01,0x10,0x00,0x20,0xff,0x03,0x00,0x00,0x18,0x10,0x00,0x20, 621 0x85,0x42,0x00,0x00 622 } 623 }; 624 625 am_hal_ble_patch_t am_ble_performance_patch_b0 = 626 { 627 .ui32Type = 0xBB, 628 .ui32Length = 0x1ac4, 629 .ui32CRC = 0xd4b1, 630 .pui32Data = am_ble_performance_patch_data_b0.words, 631 }; 632 633 634 //***************************************************************************** 635 636 637 638 //***************************************************************************** 639 // 640 // Patch Name: Function PATCH v0.4 for Apollo3 B0 641 // 642 // Reduce duration from TX to TX 643 // Optimized 32K XO frequency calculation 644 // Optimized AGC Table 645 // Fixed Channelmap indication rejected issue 646 // Fixed 800M Spur 647 // Fixed feature issue 648 // Fixed disconnect issue //long time large data transfer 649 // Date: 2019-10-25 650 //***************************************************************************** 651 //***************************************************************************** 652 // Fixed Sweyntooth security issues 653 // Fixed channel number less than 2 during channel map update 654 // Added protection for certain tx buffer list operation 655 // Disabled interrupt during AES operation 656 // Fixed interrupt nested disable/restore issues 657 // Date: 2020-04-27 658 //***************************************************************************** 659 //***************************************************************************** 660 // Improved instant past issue 0x28 661 // Improved disconnet response timout issue 0x22 662 // Date: 2020-08-23 663 //***************************************************************************** 664 //***************************************************************************** 665 // Fixed RD_REM_FEATURE issue when controller is busy 666 // Improved RD_RSSI 667 // Date: 2020-09-01 668 //***************************************************************************** 669 670 //***************************************************************************** 671 // Fixed can't enter sleep when no RF task (stop advertising) 672 // Date: 2020-12-03 673 //***************************************************************************** 674 675 //***************************************************************************** 676 // Improved DHKey generation procedure. 677 // Improved connection parameter request procedure. 678 // Date: 2020-12-14 679 //***************************************************************************** 680 681 //***************************************************************************** 682 // Optimize process for LLCP packet with invalid length. 683 // Optimize process when receiving invalid parameter of LL_LEN_RSP. 684 // Date: 2021-01-07 685 //***************************************************************************** 686 //***************************************************************************** 687 // Fixed No GATT response message during pairing issue 688 // Date: 2021-05-30 689 //***************************************************************************** 690 691 //***************************************************************************** 692 // Fixed master mode connection issue 693 // Date: 2021-07-19 694 //***************************************************************************** 695 //***************************************************************************** 696 // Fixed No response to LL_ENC_REQ issue 697 // Date: 2021-08-10 698 //***************************************************************************** 699 700 //***************************************************************************** 701 // Optimize process when receiving invalid parameter of LL_LEN_REQ. 702 // Date: 2021-09-13 703 //***************************************************************************** 704 705 //***************************************************************************** 706 // Fixed Carrier-Frequency-deviation issue during DTM testing at -20 Celsius. 707 // Date: 2021-10-26 708 //***************************************************************************** 709 710 //***************************************************************************** 711 // Fix the ACL throughput drop issue when retransmission happens. 712 // Program more ACL packets when TX buffer and time are available in the process 713 // of connection event to avoid the limitation of maximum 4 TX ACL packets in 714 // each connection event and improve the throughput rate. 715 // Date: 2024-05-24 716 //***************************************************************************** 717 718 const am_hal_ble_buffer(0x0750)am_ble_buffer_patch_data_b0 = 719 { 720 .bytes = 721 { 722 0x00,0x22,0x50,0x07,0xff,0x3f,0x00,0x00,0x84,0xfd,0x08,0x00,0x73,0x05,0x09,0x00, 723 0x75,0x0d,0x09,0x00,0x17,0x13,0x09,0x00,0xa9,0x1d,0x09,0x00,0x18,0x23,0x09,0x00, 724 0x2d,0x2b,0x09,0x00,0xc5,0x34,0x09,0x00,0xf4,0x3a,0x09,0x00,0xff,0x41,0x09,0x00, 725 0x64,0x4b,0x09,0x00,0xf9,0x51,0x09,0x00,0xee,0x59,0x09,0x00,0x54,0x64,0x09,0x00, 726 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 727 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 728 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 729 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21,0x20,0xec,0xf7, 730 0xf9,0xfc,0x00,0x28,0x0a,0xd0,0x00,0x20,0x00,0x90,0x03,0x46,0x02,0x46,0x01,0x46, 731 0x24,0x68,0x21,0x20,0x35,0x34,0xa0,0x47,0x00,0xbf,0x38,0xbd,0xef,0xf7,0xfb,0xfe, 732 0x0f,0x49,0x00,0x28,0x02,0xd0,0x08,0x78,0x01,0x28,0x12,0xd0,0x08,0x78,0x02,0x28, 733 0x0f,0xd0,0x00,0x28,0x06,0xd0,0x01,0x28,0x04,0xd0,0x00,0xf0,0x0c,0x6e,0x00,0x20, 734 0x00,0x00,0x00,0x04,0x1c,0x6e,0x00,0x20,0x00,0x49,0x08,0x47,0x41,0x4b,0x00,0x20, 735 0x23,0x4e,0xca,0x7c,0x75,0x68,0xc9,0x6a,0x00,0x2a,0x1d,0xd0,0x7d,0x22,0x12,0x02, 736 0x91,0x42,0x02,0xd3,0x8a,0x1a,0x01,0x20,0x00,0xe0,0x52,0x1a,0x00,0x28,0x05,0xd0, 737 0x20,0x46,0x50,0x43,0xea,0xf7,0x02,0xfa,0x20,0x1a,0x04,0xe0,0xea,0xf7,0xde,0xf9, 738 0x00,0x19,0x01,0x02,0xc2,0x00,0x69,0x18,0x12,0x18,0x89,0x18,0x4a,0x0a,0x53,0x02, 739 0xc9,0x1a,0x71,0x60,0x1e,0x21,0x48,0x43,0x80,0x18,0x70,0xbd,0x2c,0x68,0x00,0x20, 740 0x0c,0x6e,0x00,0x20,0x00,0x49,0x08,0x47,0x71,0x4b,0x00,0x20,0xc1,0x7c,0xc0,0x6a, 741 0x00,0x29,0x15,0xd0,0x7d,0x21,0x09,0x02,0x88,0x42,0x02,0xd3,0x02,0xd5,0x04,0x20, 742 0x60,0x70,0x34,0xe0,0x28,0x69,0x06,0xf0,0xb5,0xf8,0x00,0x28,0x02,0xd0,0x02,0x20, 743 0x60,0x70,0x2c,0xe0,0x03,0x98,0x04,0xf0,0x1f,0xfa,0x04,0x28,0x07,0xd1,0x68,0x46, 744 0x01,0x79,0x02,0x20,0x88,0x43,0x05,0xd0,0x00,0x20,0x00,0x28,0x04,0xd0,0x00,0xbf, 745 0x00,0x20,0x1c,0xe0,0x01,0x20,0xf8,0xe7,0xf0,0x88,0x00,0x90, 746 AM_HAL_BLE_LOCAL_FEATURE,//0x21, 747 0x00,0x00,0x00, 748 0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, 749 0xff,0x03,0x00,0x00,0xff,0x00,0x3c,0x1f,0x00,0x00,0x00,0x00,0x01,0x20,0x00,0x00, 750 0x8d,0x84,0x00,0x00,0x02,0x20,0x00,0x00,0xcd,0x7d,0x00,0x00,0x03,0x20,0x00,0x00, 751 0xd1,0x7e,0x00,0x00,0x05,0x20,0x00,0x00,0xfd,0x84,0x00,0x00,0x28,0x69,0x28,0x30, 752 0x40,0x30,0x01,0x8d,0x00,0x98,0x40,0x1a,0x2a,0x49,0x80,0xb2,0x00,0xbf,0x00,0xbf, 753 0x28,0x46,0x05,0x22,0x71,0x1c,0x63,0x30,0xf3,0xf7,0xac,0xfd,0x28,0x69,0x00,0x99, 754 0x01,0xf0,0xdf,0xfb,0x01,0x20,0x60,0x70,0x01,0xe0,0x03,0x20,0x60,0x70,0x00,0x2f, 755 0x39,0xd1,0x60,0x78,0x06,0x28,0x36,0xd2,0x01,0x00,0x79,0x44,0x00,0xbf,0x00,0xbf, 756 0x31,0x89,0x56,0x22,0x51,0x53,0x31,0x46,0x01,0xf0,0x3e,0xfe,0x01,0x20,0x60,0x70, 757 0x01,0xe0,0x03,0x20,0x60,0x70,0x00,0x2f,0x67,0xd1,0x60,0x78,0x06,0x28,0x64,0xd2, 758 0x01,0x00,0x79,0x44,0x09,0x79,0x49,0x18,0x8f,0x44,0x5f,0x18,0x0c,0x02,0x07,0x12, 759 0x28,0x21,0x05,0x98,0xff,0xf7,0x54,0xfc,0x57,0xe0,0x3d,0x21,0x78,0x68,0x00,0x20, 760 0xac,0x6d,0x00,0x20,0x40,0x00,0x80,0x50,0x17,0x20,0x00,0x00,0x01,0x08,0x00,0x00, 761 0x7e,0x40,0x80,0x50,0xd8,0x68,0x00,0x20,0x00,0x49,0x08,0x47,0xd1,0x4b,0x00,0x20, 762 0x11,0x43,0xc3,0x78,0x82,0x78,0x1b,0x02,0x1a,0x43,0x12,0x04,0x0a,0x43,0x1a,0x4c, 763 0x62,0x60,0x42,0x79,0x01,0x79,0x12,0x02,0x11,0x43,0xc3,0x79,0x13,0x2e,0x1b,0xd0, 764 0xa1,0x21,0x0e,0x55,0x02,0x22,0x69,0x46,0x0a,0x72,0x4e,0x72,0x0f,0x21,0x08,0x43, 765 0x01,0x90,0x01,0x46,0x38,0x46,0xfe,0xf7,0x09,0xf9,0x69,0x46,0x0a,0x7a,0xe8,0xb2, 766 0x02,0xa9,0xff,0xf7,0x55,0xff,0x40,0x34,0xff,0x20,0xa2,0x8a,0x39,0x46,0x03,0x30, 767 0x00,0xbf,0x00,0xbf,0x03,0xb0,0xf0,0xbd,0x16,0x22,0xa1,0x21,0x20,0x88,0x80,0x00, 768 0x38,0x58,0x40,0x30,0x00,0x7f,0xc0,0x07,0x05,0xd0,0x00,0x25,0x2f,0xe0,0x20,0x88, 769 0x08,0xf0,0x22,0xfd,0x2b,0xe0,0x68,0x46,0x01,0x7a,0x01,0x20,0x88,0x43,0x03,0xd0, 770 0x00,0x20,0x00,0x28,0x08,0xd1,0x01,0xe0,0x01,0x20,0xfa,0xe7,0x04,0x20,0x88,0x43, 771 0x04,0xd0,0x00,0x20,0x00,0x28,0x03,0xd0,0x3a,0x25,0x18,0xe0,0x11,0x43,0x81,0x83, 772 0x0f,0x21,0x30,0x46,0xfc,0xf7,0x12,0xfb,0x28,0x46,0x03,0xf0,0x85,0xf8,0x04,0x28, 773 0x03,0xd1,0x61,0x78,0x28,0x46,0xfe,0xf7,0x83,0xfd,0x00,0x20,0x70,0xbd,0x00,0x00, 774 0x64,0x69,0x00,0x20,0x30,0xb4,0x02,0x4c,0xa4,0x46,0x30,0xbc,0x60,0x47,0x00,0x00, 775 0x79,0x4c,0x00,0x20,0xe9,0xfa,0x01,0x46,0x00,0x90,0x03,0x98,0x20,0x88,0x68,0x80, 776 0x28,0x46,0x01,0xf0,0xb5,0xf8,0x00,0x20,0xf8,0xbd,0x00,0x00,0x15,0x20,0x00,0x00, 777 0x01,0x08,0x00,0x00,0x64,0x69,0x00,0x20,0xf0,0xb5,0x83,0xb0,0x18,0x46,0x00,0x24, 778 0x18,0x4d,0xe9,0x7a,0x00,0x29,0x00,0xd0,0x00,0x24,0x21,0x46,0x0a,0xf0,0x42,0xfe, 779 0x00,0x2c,0x24,0xd1,0x01,0x26,0x01,0x96,0x13,0x4c,0x02,0xaa,0xf9,0xfd,0x04,0x46, 780 0x03,0xe0,0x30,0x46,0x0b,0xf0,0x5c,0xfe,0x04,0x46,0x21,0x46,0x38,0x46,0x0a,0xf0, 781 0xa3,0xff,0x00,0x20,0xf8,0xbd,0x00,0x00,0x2e,0x20,0x00,0x00,0xd9,0xdf,0xff,0xff, 782 0xf8,0x68,0x00,0x20,0x10,0xb5,0x82,0xb0,0x0a,0x46,0x1c,0x46,0x00,0x21,0x0d,0x48, 783 0xc3,0x7a,0x00,0x2b,0x00,0xd0,0x00,0xbf,0x00,0x21,0x0c,0xd1,0xee,0xf7,0x3a,0xfe, 784 0xa0,0x78,0x16,0x28,0x02,0xd3,0x19,0x20,0x20,0x70,0x13,0xe0,0x0c,0x21,0x0c,0x4a, 785 0x48,0x43,0x11,0x5c,0xb1,0x42,0x02,0xd0,0x19,0x20,0x20,0x70,0x0a,0xe0,0x00,0x21, 786 0x21,0x70,0x6d,0x1c,0x80,0x18,0x76,0x1e,0xad,0xb2,0x83,0x68,0xf1,0xb2,0xa2,0x1c, 787 0x28,0x46,0x98,0x47,0x20,0x46,0x70,0xbd,0x80,0x44,0x80,0x50,0x08,0x4a,0x11,0x6b, 788 0x52,0x6b,0x08,0x4b,0x98,0x42,0x01,0xd9,0x00,0x20,0x70,0x47,0x41,0x43,0x42,0x43, 789 0x89,0x09,0x90,0x0c,0x08,0x18,0x04,0x49,0x88,0x42,0xf6,0xd9,0x00,0x20,0x70,0x47, 790 0xc0,0x7e,0x00,0x20,0x80,0x84,0x1e,0x00,0x00,0x87,0x93,0x03,0x10,0xb4,0x13,0x49, 791 0x89,0x6b,0x13,0x4a,0x90,0x42,0x02,0xd9,0x10,0xbc,0x00,0x20,0x70,0x47,0x11,0x4a, 792 0x7d,0x24,0x13,0x68,0x14,0x22,0x24,0x02,0x42,0x43,0xa3,0x42,0x03,0xd9,0x41,0x43, 793 0x08,0x0c,0x10,0x18,0x02,0xe0,0x41,0x43,0x08,0x0c,0x10,0x1a,0x0a,0x49,0x88,0x42, 794 0x02,0xd9,0x00,0x20,0x10,0xbc,0x70,0x47,0x00,0x28,0x00,0xd0,0x40,0x1e,0xa3,0x42, 795 0xf8,0xd2,0x00,0x28,0xf6,0xd0,0x10,0xbc,0x40,0x1e,0x70,0x47,0xc0,0x7e,0x00,0x20, 796 0xa0,0x86,0x01,0x00,0x58,0x68,0x00,0x20,0x80,0x84,0x1e,0x00,0xf0,0xb4,0xef,0xf3, 797 0x10,0x81,0xcc,0xb2,0x01,0x21,0x81,0xf3,0x10,0x88,0x42,0x78,0x01,0x78,0x12,0x02, 798 0x11,0x43,0xc3,0x78,0x82,0x78,0x1b,0x02,0x1a,0x43,0x12,0x04,0x0a,0x43,0x1d,0x4d, 799 0x6a,0x60,0x42,0x79,0x01,0x79,0x12,0x02,0x11,0x43,0xc3,0x79,0x82,0x79,0x1b,0x02, 800 0x1a,0x43,0x12,0x04,0x0a,0x43,0xaa,0x60,0x42,0x7a,0x01,0x7a,0x12,0x02,0x11,0x43, 801 0xc3,0x7a,0x82,0x7a,0x1b,0x02,0x1a,0x43,0x12,0x04,0x0a,0x43,0xea,0x60,0x42,0x7b, 802 0x01,0x7b,0x12,0x02,0x11,0x43,0xc3,0x7b,0x82,0x7b,0x1b,0x02,0x1a,0x43,0x12,0x04, 803 0x0a,0x43,0x2a,0x61,0x10,0x30,0x10,0x23,0x0b,0x4a,0x00,0x21,0x46,0x5c,0x56,0x54, 804 0x49,0x1c,0x89,0xb2,0x99,0x42,0xf9,0xd3,0x6e,0x20,0x68,0x61,0x01,0x20,0x28,0x60, 805 0x06,0x48,0x01,0x21,0x01,0x74,0x84,0xf3,0x10,0x88,0xf0,0xbc,0x04,0x49,0x10,0x20, 806 0x08,0x47,0x00,0x00,0xc0,0x00,0x80,0x50,0x6e,0x40,0x80,0x50,0xd8,0x68,0x00,0x20, 807 0xa1,0x59,0x01,0x00,0xff,0xb5,0x85,0xb0,0x0e,0x46,0x1f,0x46,0x00,0x20,0x02,0x90, 808 0x74,0x49,0x30,0x46,0x88,0x47,0x01,0x46,0x01,0x90,0x05,0x98,0x72,0x4a,0x80,0x00, 809 0x04,0x90,0x14,0x58,0x25,0x46,0xa0,0x35,0x6b,0x79,0x18,0x07,0x07,0xd5,0xe8,0x78, 810 0x0d,0x28,0x04,0xd0,0x6d,0x4a,0x3d,0x21,0x05,0x98,0x90,0x47,0xce,0xe0,0x01,0x20, 811 0x88,0x43,0x0d,0xd0,0x00,0x20,0x00,0x28,0x74,0xd0,0xe8,0x78,0x68,0x4a,0x03,0x92, 812 0x05,0x28,0x70,0xd0,0x06,0xdc,0x01,0x28,0x1b,0xd0,0x04,0x28,0x6a,0xd1,0x74,0xe0, 813 0x01,0x20,0xf0,0xe7,0x07,0x28,0x2d,0xd0,0x0d,0x28,0x63,0xd1,0xd8,0x06,0x61,0xd4, 814 0x00,0x24,0x6c,0x71,0x1a,0x22,0x5f,0x4b,0x00,0x21,0x05,0x98,0x98,0x47,0x68,0x46, 815 0x01,0x79,0x49,0x08,0x49,0x00,0x01,0x91,0x5b,0x4a,0x30,0x46,0x90,0x47,0xec,0x70, 816 0xa4,0xe0,0x78,0x78,0x0e,0x28,0x4d,0xd1,0xff,0x20,0x58,0x4a,0x31,0x46,0x03,0x30, 817 0x90,0x47,0x22,0x46,0x69,0x32,0x56,0x4b,0x1a,0x20,0x05,0x99,0x98,0x47,0x68,0x46, 818 0x01,0x79,0x49,0x08,0x49,0x00,0x01,0x91,0x4f,0x4a,0x30,0x46,0x90,0x47,0x00,0x20, 819 0xe8,0x70,0x8b,0xe0,0x78,0x78,0x0f,0x28,0x34,0xd1,0xff,0x20,0x4b,0x4a,0x31,0x46, 820 0x03,0x30,0x90,0x47,0x20,0x46,0x60,0x30,0x41,0x7a,0xfd,0x22,0x11,0x40,0x41,0x72, 821 0x48,0x49,0x05,0x98,0x88,0x47,0x03,0x28,0x26,0xd0,0x20,0x46,0x40,0x30,0x01,0x46, 822 0x80,0x8b,0x42,0x06,0x10,0xd5,0x40,0x22,0x90,0x43,0x88,0x83,0x03,0x98,0x04,0x21, 823 0x00,0x7f,0x08,0x40,0x00,0xd0,0x01,0x20,0x00,0x28,0x05,0xd0,0x22,0x69,0x28,0x32, 824 0x3d,0x4b,0x1a,0x20,0x05,0x99,0x98,0x47,0x3c,0x4a,0x00,0x21,0x05,0x98,0x90,0x47, 825 0x68,0x46,0x01,0x79,0x49,0x08,0x49,0x00,0x01,0x91,0x33,0x4a,0x30,0x46,0x90,0x47, 826 0x00,0x20,0xe8,0x70,0x52,0xe0,0x41,0xe0,0x2b,0x49,0x04,0x98,0x08,0x58,0x00,0x68, 827 0x02,0x21,0x01,0x70,0x32,0x49,0x88,0x47,0x48,0xe0,0x78,0x78,0x14,0x28,0x45,0xd1, 828 0xff,0x20,0x2a,0x4a,0x31,0x46,0x03,0x30,0x90,0x47,0x01,0x20,0x40,0x34,0xa0,0x74, 829 0x03,0x98,0x40,0x21,0x00,0x7f,0x08,0x40,0x00,0xd0,0x01,0x20,0x00,0x28,0x1a,0xd0, 830 0xe0,0x7c,0x80,0x07,0x17,0xd4,0x0c,0x23,0x27,0x4f,0x3e,0x22,0x25,0x48,0x05,0x99, 831 0xb8,0x47,0x07,0x21,0x01,0x70,0x05,0x99,0x41,0x80,0x21,0x89,0x01,0x81,0x21,0x8a, 832 0x41,0x81,0xe1,0x88,0x81,0x80,0xe1,0x89,0xc1,0x80,0x20,0x49,0x88,0x47,0xe0,0x7c, 833 0x02,0x21,0x08,0x43,0xe0,0x74,0x68,0x46,0x01,0x79,0x49,0x08,0x49,0x00,0x01,0x91, 834 0x11,0x4a,0x30,0x46,0x90,0x47,0x00,0x20,0xe8,0x70,0x0f,0xe0,0x78,0x78,0x12,0x28, 835 0x0c,0xd1,0x49,0x08,0x49,0x00,0x01,0x91,0x0b,0x4a,0x30,0x46,0x90,0x47,0x00,0x20, 836 0xe8,0x70,0xff,0x20,0x09,0x4a,0x31,0x46,0x03,0x30,0x90,0x47,0x02,0x98,0x09,0xb0, 837 0xf0,0xbd,0x00,0x00,0x0d,0x9f,0x00,0x00,0x64,0x69,0x00,0x20,0x25,0xc4,0x00,0x00, 838 0xb8,0x68,0x00,0x20,0x05,0xa8,0x00,0x00,0x31,0x9f,0x00,0x00,0x89,0xa1,0x00,0x00, 839 0x1d,0xb0,0x00,0x00,0x1d,0x0a,0x01,0x00,0x09,0xab,0x00,0x00,0x05,0xc4,0x00,0x00, 840 0x31,0x9e,0x00,0x00,0x04,0x08,0x00,0x00,0xf5,0x9d,0x00,0x00,0xb5,0x8f,0x00,0x00 841 } 842 }; 843 844 am_hal_ble_patch_t am_ble_buffer_patch_b0 = 845 { 846 .ui32Type = 0xCC, 847 .ui32Length = 0x0750, 848 .ui32CRC = 0x7ce6, 849 .pui32Data = am_ble_buffer_patch_data_b0.words, 850 }; 851 852 853 //***************************************************************************** 854 // 855 // Patch Name: Function PATCH v0.4 for Apollo3 B0 856 // Reduce duration from TX to TX 857 // Optimized 32K XO frequency calculation 858 // Optimized AGC Table 859 // Fixed Channelmap indication rejected issue 860 // Fixed 800M Spur 861 // Fixed feature issue 862 // Date: 2019-05-15 863 //***************************************************************************** 864 //***************************************************************************** 865 // Added one parameter for changing channel reassess duration 866 // Date: 2020-09-12 867 //***************************************************************************** 868 869 870 am_hal_ble_buffer(0x00c7) am_ble_buffer_nvds_data_b0 = 871 { 872 .bytes = 873 { 874 0x4e,0x56,0x44,0x53, //NVDS_MAGIC_NUMBER 875 0x01,0x06,0x06,0xef,0xbb,0x23,0x88,0x77,0x66, //bluetooth address 876 0x02,0x06,0x0a,0x4e,0x5a,0x38,0x38,0x30,0x31,0x56,0x31,0x41,0x00, //device name 877 0x03,0x06,0x01,0x00, //system clock frequency, 00=32MHz 01=24MHz others=16MHz 878 0x07,0x06,0x02,0x00,0x00, //32K clock drift, 0x01f4 = 500 ppm 879 0x0c,0x06,0x02,0x96,0x00, //sleep clock accuracy in ppm, default 0x0096 = 150 ppm 880 0x08,0x06,0x01,0x00, //01 for BQB qualification, 00 for normal usage 881 0x09,0x06,0x01,0x02, //clock source selection, 00 = internal RC32KHz, 02= use Apollo3 MCU 32.768KHz 882 0x0a,0x06,0x04,0x00,0x00,0x00,0x00, //0x00000000 = auto detect and low frequency clock calibration 883 0x0b,0x06,0x01,0x96, //rx_ifs 0x96 = 150us 884 0x23,0x06,0x01,0x95, //tx_ifs 0x95 = 149us 885 0x0d,0x06,0x02,0xe8,0x3, //duration allowed for XO32M stabilization from external wakeup 886 0x0e,0x06,0x02,0xe8,0x3, //duration allowed for XO32M stabilization from internal wakeup signal 887 0x0f,0x06,0x02,0x2c,0x01, //duration allowed for radio to leave low power mode 888 0x10,0x06,0x04,0x00,0xc2,0x01,0x00, //set UART_BAUDRATE 889 0x11,0x06,0x01,0x01, //sleep algorithm enabled 890 // 0x11,0x06,0x01,0x00, //sleep algorithm disabled 891 0x12,0x06,0x01,0x01, //external wake-up support 892 0x13,0x06,0x02,0x90,0x02, //duration of sleep and wake-up algorithm 893 0x14,0x06,0x02,0xAC,0x09, // Ambiq's Company Identifier 894 0x15,0x06,0x01,0x09, //BLE major version, support BLE 5.0 895 0x16,0x06,0x01,0x03, //BLE minor version 896 0x17,0x06,0x01,0x29, //BLE SW version build 897 0x18,0x06,0x02,0xdc,0x05, //advertising interval (undirect) 898 0x19,0x06,0x02,0xe2,0x04, //advertising interval (direct) 899 0x20,0x06,0x01,0x01, //agc switch on 900 0x21,0x06,0x01,0x02, //EA programming latency,set '2' with master mode 901 0x22,0x06,0x01,0x00, //EA asap latency 902 0x24,0x06,0x04,0x5C,0x09,0x6A,0x09, //radio TRX timing 903 0x25,0x06,0x01,0x11, //modem polarity setting 904 0x26,0x06,0x01,0x00, //modem sync setting 905 0x27,0x06,0x01,0x02, //BLE reset delay 906 0x2d,0x06,0x01,0x00, //2 byte mode switch, 01 to enable 907 0x28,0x06,0x02,0xf6,0x2d, //initial agc gain setting 908 0x29,0x06,0x01,0x0f, //initial Tx output power, 0x0f is +4dBm 909 0x35,0x06,0x01,0x08, //maximum Tx ouput power setting 910 0x37,0x06,0x01,0x00, //RC32K calibration control, 0xAA to enable 911 0x05,0x06,0x02,0x34,0x00, //no use 912 0x04,0x06,0x01,0x20, //internal dvdd voltage level control if using 0.9V from MCU side 913 0x2e,0x06,0x01,0x00, //instant indication,set "0" to disbale instant reject 914 0x40,0x06,0x02,0x10,0x27, //set channel reassess time duration 0x2710 means set to 10s 915 0x00,0x00,0x00,0x00 //dummy 916 } 917 }; 918 919 am_hal_ble_patch_t am_ble_nvds_patch_b0 = 920 { 921 .ui32Type = 0xDD, 922 .ui32Length = 0x00c7, 923 .ui32CRC = 0x112b, 924 .pui32Data = am_ble_buffer_nvds_data_b0.words, 925 }; 926 927 //***************************************************************************** 928 // 929 // End Doxygen group. 930 //! @} 931 // 932 //***************************************************************************** 933