1 /*- 2 * SPDX-License-Identifier: BSD-4-Clause 3 * 4 * Copyright (c) 1997, 1998, 1999, 2000 5 * Bill Paul <wpaul@ee.columbia.edu>. All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 3. All advertising materials mentioning features or use of this software 16 * must display the following acknowledgement: 17 * This product includes software developed by Bill Paul. 18 * 4. Neither the name of the author nor the names of any co-contributors 19 * may be used to endorse or promote products derived from this software 20 * without specific prior written permission. 21 * 22 * THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND 23 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25 * ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD 26 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 27 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 28 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 29 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 30 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 31 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 32 * THE POSSIBILITY OF SUCH DAMAGE. 33 * 34 * $FreeBSD$ 35 */ 36 37 /* 38 * This file contains the firmware needed to make the KLSI chip work, 39 * along with a few constants related to the QT Engine microcontroller 40 * embedded in the KLSI part. 41 * 42 * Firmware is loaded using the vendor-specific 'send scan data' 43 * command (0xFF). The basic operation is that we must load the 44 * firmware, then issue some trigger commands to fix it up and start 45 * it running. There are three transfers: load the binary code, 46 * load the 'fixup' (data segment?), then issue a command to 47 * start the code firmware running. The data itself is prefixed by 48 * a 16-bit signature word, a 16-bit length value, a type byte 49 * and an interrupt (command) byte. The code segment is of type 50 * 0x02 (replacement interrupt vector data) and the fixup segment 51 * is of type 0x03 (replacement interrupt fixup data). The interrupt 52 * code is 0x64 (load new code). The length word is the total length 53 * of the segment minus 7. I precomputed the values and stuck them 54 * into the appropriate locations within the segments to save some 55 * work in the driver. 56 */ 57 58 /* QT controller data block types. */ 59 /* Write data into specific memory location. */ 60 #define KUE_QTBTYPE_WRITE_DATA 0x00 61 /* Write data into interrupt vector location */ 62 #define KUE_QTBTYPE_WRITE_INTVEC 0x01 63 /* Replace interrupt vector with this data */ 64 #define KUE_QTBTYPE_REPL_INTVEC 0x02 65 /* Fixup interrupt vector code with this data */ 66 #define KUE_QTBTYPE_FIXUP_INTVEC 0x03 67 /* Force jump to location */ 68 #define KUE_QTBTYPE_JUMP 0x04 69 /* Force call to location */ 70 #define KUE_QTBTYPE_CALL 0x05 71 /* Force interrupt call */ 72 #define KUE_QTBTYPE_CALLINTR 0x06 73 /* 74 * Cause data to be written using the specified QT engine 75 * interrupt, from starting location in memory for a specified 76 * number of bytes. 77 */ 78 #define KUE_QTBTYPE_WRITE_WITH_INTR 0x07 79 /* Cause data from stream to be written using specified QT interrupt. */ 80 #define KUE_QTBTYPE_WRITE_STR_WITH_INTR 0x08 81 /* Cause data to be written to config locations. */ 82 /* Addresses assume 0xc000 offset. */ 83 #define KUE_QTBTYPE_WRITE_CONFIG 0x09 84 85 #define KUE_QTINTR_LOAD_CODE 0x64 86 #define KUE_QTINTR_TRIGGER_CODE 0x3B 87 #define KUE_QTINTR_LOAD_CODE_HIGH 0x9C 88 89 /* Firmware code segment */ 90 static unsigned char kue_code_seg[] = 91 { 92 /******************************************/ 93 /* NOTE: B6/C3 is data header signature */ 94 /* 0xAA/0xBB is data length = total */ 95 /* bytes - 7, 0xCC is type, 0xDD is */ 96 /* interrupt to use. */ 97 /******************************************/ 98 0xB6, 0xC3, 0xf7, 0x0e, 0x02, 0x64, 99 0x9f, 0xcf, 0xbc, 0x08, 0xe7, 0x57, 0x00, 0x00, 100 0x9a, 0x08, 0x97, 0xc1, 0xe7, 0x67, 0xff, 0x1f, 101 0x28, 0xc0, 0xe7, 0x87, 0x00, 0x04, 0x24, 0xc0, 102 0xe7, 0x67, 0xff, 0xf9, 0x22, 0xc0, 0x97, 0xcf, 103 0xe7, 0x09, 0xa2, 0xc0, 0x94, 0x08, 0xd7, 0x09, 104 0x00, 0xc0, 0xe7, 0x59, 0xba, 0x08, 0x94, 0x08, 105 0x03, 0xc1, 0xe7, 0x67, 0xff, 0xf7, 0x24, 0xc0, 106 0xe7, 0x05, 0x00, 0xc0, 0xa7, 0xcf, 0x92, 0x08, 107 0xe7, 0x57, 0x00, 0x00, 0x8e, 0x08, 0xa7, 0xa1, 108 0x8e, 0x08, 0x97, 0xcf, 0xe7, 0x57, 0x00, 0x00, 109 0xf2, 0x09, 0x0a, 0xc0, 0xe7, 0x57, 0x00, 0x00, 110 0xa4, 0xc0, 0xa7, 0xc0, 0x56, 0x08, 0x9f, 0xaf, 111 0x70, 0x09, 0xe7, 0x07, 0x00, 0x00, 0xf2, 0x09, 112 0xe7, 0x57, 0xff, 0xff, 0x90, 0x08, 0x9f, 0xa0, 113 0x40, 0x00, 0xe7, 0x59, 0x90, 0x08, 0x94, 0x08, 114 0x9f, 0xa0, 0x40, 0x00, 0xc8, 0x09, 0xa2, 0x08, 115 0x08, 0x62, 0x9f, 0xa1, 0x14, 0x0a, 0xe7, 0x57, 116 0x00, 0x00, 0x52, 0x08, 0xa7, 0xc0, 0x56, 0x08, 117 0x9f, 0xaf, 0x04, 0x00, 0xe7, 0x57, 0x00, 0x00, 118 0x8e, 0x08, 0xa7, 0xc1, 0x56, 0x08, 0xc0, 0x09, 119 0xa8, 0x08, 0x00, 0x60, 0x05, 0xc4, 0xc0, 0x59, 120 0x94, 0x08, 0x02, 0xc0, 0x9f, 0xaf, 0xee, 0x00, 121 0xe7, 0x59, 0xae, 0x08, 0x94, 0x08, 0x02, 0xc1, 122 0x9f, 0xaf, 0xf6, 0x00, 0x9f, 0xaf, 0x9e, 0x03, 123 0xef, 0x57, 0x00, 0x00, 0xf0, 0x09, 0x9f, 0xa1, 124 0xde, 0x01, 0xe7, 0x57, 0x00, 0x00, 0x78, 0x08, 125 0x9f, 0xa0, 0xe4, 0x03, 0x9f, 0xaf, 0x2c, 0x04, 126 0xa7, 0xcf, 0x56, 0x08, 0x48, 0x02, 0xe7, 0x09, 127 0x94, 0x08, 0xa8, 0x08, 0xc8, 0x37, 0x04, 0x00, 128 0x9f, 0xaf, 0x68, 0x04, 0x97, 0xcf, 0xe7, 0x57, 129 0x00, 0x00, 0xa6, 0x08, 0x97, 0xc0, 0xd7, 0x09, 130 0x00, 0xc0, 0xc1, 0xdf, 0xc8, 0x09, 0x9c, 0x08, 131 0x08, 0x62, 0x1d, 0xc0, 0x27, 0x04, 0x9c, 0x08, 132 0x10, 0x94, 0xf0, 0x07, 0xee, 0x09, 0x02, 0x00, 133 0xc1, 0x07, 0x01, 0x00, 0x70, 0x00, 0x04, 0x00, 134 0xf0, 0x07, 0x44, 0x01, 0x06, 0x00, 0x50, 0xaf, 135 0xe7, 0x09, 0x94, 0x08, 0xae, 0x08, 0xe7, 0x17, 136 0x14, 0x00, 0xae, 0x08, 0xe7, 0x67, 0xff, 0x07, 137 0xae, 0x08, 0xe7, 0x07, 0xff, 0xff, 0xa8, 0x08, 138 0xe7, 0x07, 0x00, 0x00, 0xa6, 0x08, 0xe7, 0x05, 139 0x00, 0xc0, 0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0, 140 0xc1, 0xdf, 0x48, 0x02, 0xd0, 0x09, 0x9c, 0x08, 141 0x27, 0x02, 0x9c, 0x08, 0xe7, 0x09, 0x20, 0xc0, 142 0xee, 0x09, 0xe7, 0xd0, 0xee, 0x09, 0xe7, 0x05, 143 0x00, 0xc0, 0x97, 0xcf, 0x48, 0x02, 0xc8, 0x37, 144 0x04, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x60, 145 0x21, 0xc0, 0xc0, 0x37, 0x3e, 0x00, 0x23, 0xc9, 146 0xc0, 0x57, 0xb4, 0x05, 0x1b, 0xc8, 0xc0, 0x17, 147 0x3f, 0x00, 0xc0, 0x67, 0xc0, 0xff, 0x30, 0x00, 148 0x08, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x04, 0x00, 149 0x00, 0x02, 0xc0, 0x17, 0x4c, 0x00, 0x30, 0x00, 150 0x06, 0x00, 0xf0, 0x07, 0xbe, 0x01, 0x0a, 0x00, 151 0x48, 0x02, 0xc1, 0x07, 0x02, 0x00, 0xd7, 0x09, 152 0x00, 0xc0, 0xc1, 0xdf, 0x51, 0xaf, 0xe7, 0x05, 153 0x00, 0xc0, 0x97, 0xcf, 0x9f, 0xaf, 0x68, 0x04, 154 0x9f, 0xaf, 0xe4, 0x03, 0x97, 0xcf, 0x9f, 0xaf, 155 0xe4, 0x03, 0xc9, 0x37, 0x04, 0x00, 0xc1, 0xdf, 156 0xc8, 0x09, 0x70, 0x08, 0x50, 0x02, 0x67, 0x02, 157 0x70, 0x08, 0xd1, 0x07, 0x00, 0x00, 0xc0, 0xdf, 158 0x9f, 0xaf, 0xde, 0x01, 0x97, 0xcf, 0xe7, 0x57, 159 0x00, 0x00, 0xaa, 0x08, 0x97, 0xc1, 0xe7, 0x57, 160 0x01, 0x00, 0x7a, 0x08, 0x97, 0xc0, 0xc8, 0x09, 161 0x6e, 0x08, 0x08, 0x62, 0x97, 0xc0, 0x00, 0x02, 162 0xc0, 0x17, 0x0e, 0x00, 0x27, 0x00, 0x34, 0x01, 163 0x27, 0x0c, 0x0c, 0x00, 0x36, 0x01, 0xef, 0x57, 164 0x00, 0x00, 0xf0, 0x09, 0x9f, 0xc0, 0xbe, 0x02, 165 0xe7, 0x57, 0x00, 0x00, 0xb0, 0x08, 0x97, 0xc1, 166 0xe7, 0x07, 0x09, 0x00, 0x12, 0xc0, 0xe7, 0x77, 167 0x00, 0x08, 0x20, 0xc0, 0x9f, 0xc1, 0xb6, 0x02, 168 0xe7, 0x57, 0x09, 0x00, 0x12, 0xc0, 0x77, 0xc9, 169 0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0xe7, 0x77, 170 0x00, 0x08, 0x20, 0xc0, 0x2f, 0xc1, 0xe7, 0x07, 171 0x00, 0x00, 0x42, 0xc0, 0xe7, 0x07, 0x05, 0x00, 172 0x90, 0xc0, 0xc8, 0x07, 0x0a, 0x00, 0xe7, 0x77, 173 0x04, 0x00, 0x20, 0xc0, 0x09, 0xc1, 0x08, 0xda, 174 0x7a, 0xc1, 0xe7, 0x07, 0x00, 0x01, 0x42, 0xc0, 175 0xe7, 0x07, 0x04, 0x00, 0x90, 0xc0, 0x1a, 0xcf, 176 0xe7, 0x07, 0x01, 0x00, 0x7a, 0x08, 0x00, 0xd8, 177 0x27, 0x50, 0x34, 0x01, 0x17, 0xc1, 0xe7, 0x77, 178 0x02, 0x00, 0x20, 0xc0, 0x79, 0xc1, 0x27, 0x50, 179 0x34, 0x01, 0x10, 0xc1, 0xe7, 0x77, 0x02, 0x00, 180 0x20, 0xc0, 0x79, 0xc0, 0x9f, 0xaf, 0xd8, 0x02, 181 0xe7, 0x05, 0x00, 0xc0, 0x00, 0x60, 0x9f, 0xc0, 182 0xde, 0x01, 0x97, 0xcf, 0xe7, 0x07, 0x01, 0x00, 183 0xb8, 0x08, 0x06, 0xcf, 0xe7, 0x07, 0x30, 0x0e, 184 0x02, 0x00, 0xe7, 0x07, 0x50, 0xc3, 0x12, 0xc0, 185 0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf, 0xe7, 0x07, 186 0x01, 0x00, 0xb8, 0x08, 0x97, 0xcf, 0xe7, 0x07, 187 0x50, 0xc3, 0x12, 0xc0, 0xe7, 0x07, 0x30, 0x0e, 188 0x02, 0x00, 0xe7, 0x07, 0x01, 0x00, 0x7a, 0x08, 189 0xe7, 0x07, 0x05, 0x00, 0x90, 0xc0, 0x97, 0xcf, 190 0xe7, 0x07, 0x00, 0x01, 0x42, 0xc0, 0xe7, 0x07, 191 0x04, 0x00, 0x90, 0xc0, 0xe7, 0x07, 0x00, 0x00, 192 0x7a, 0x08, 0xe7, 0x57, 0x0f, 0x00, 0xb2, 0x08, 193 0x13, 0xc1, 0x9f, 0xaf, 0x2e, 0x08, 0xca, 0x09, 194 0xac, 0x08, 0xf2, 0x17, 0x01, 0x00, 0x5c, 0x00, 195 0xf2, 0x27, 0x00, 0x00, 0x5e, 0x00, 0xe7, 0x07, 196 0x00, 0x00, 0xb2, 0x08, 0xe7, 0x07, 0x01, 0x00, 197 0xb4, 0x08, 0xc0, 0x07, 0xff, 0xff, 0x97, 0xcf, 198 0x9f, 0xaf, 0x4c, 0x03, 0xc0, 0x69, 0xb4, 0x08, 199 0x57, 0x00, 0x9f, 0xde, 0x33, 0x00, 0xc1, 0x05, 200 0x27, 0xd8, 0xb2, 0x08, 0x27, 0xd2, 0xb4, 0x08, 201 0xe7, 0x87, 0x01, 0x00, 0xb4, 0x08, 0xe7, 0x67, 202 0xff, 0x03, 0xb4, 0x08, 0x00, 0x60, 0x97, 0xc0, 203 0xe7, 0x07, 0x01, 0x00, 0xb0, 0x08, 0x27, 0x00, 204 0x12, 0xc0, 0x97, 0xcf, 0xc0, 0x09, 0xb6, 0x08, 205 0x00, 0xd2, 0x02, 0xc3, 0xc0, 0x97, 0x05, 0x80, 206 0x27, 0x00, 0xb6, 0x08, 0xc0, 0x99, 0x82, 0x08, 207 0xc0, 0x99, 0xa2, 0xc0, 0x97, 0xcf, 0xe7, 0x07, 208 0x00, 0x00, 0xb0, 0x08, 0xc0, 0xdf, 0x97, 0xcf, 209 0xc8, 0x09, 0x72, 0x08, 0x08, 0x62, 0x02, 0xc0, 210 0x10, 0x64, 0x07, 0xc1, 0xe7, 0x07, 0x00, 0x00, 211 0x64, 0x08, 0xe7, 0x07, 0xc8, 0x05, 0x24, 0x00, 212 0x97, 0xcf, 0x27, 0x04, 0x72, 0x08, 0xc8, 0x17, 213 0x0e, 0x00, 0x27, 0x02, 0x64, 0x08, 0xe7, 0x07, 214 0xd6, 0x05, 0x24, 0x00, 0x97, 0xcf, 0xd7, 0x09, 215 0x00, 0xc0, 0xc1, 0xdf, 0xe7, 0x57, 0x00, 0x00, 216 0x62, 0x08, 0x13, 0xc1, 0x9f, 0xaf, 0x70, 0x03, 217 0xe7, 0x57, 0x00, 0x00, 0x64, 0x08, 0x13, 0xc0, 218 0xe7, 0x09, 0x64, 0x08, 0x30, 0x01, 0xe7, 0x07, 219 0xf2, 0x05, 0x32, 0x01, 0xe7, 0x07, 0x10, 0x00, 220 0x96, 0xc0, 0xe7, 0x09, 0x64, 0x08, 0x62, 0x08, 221 0x04, 0xcf, 0xe7, 0x57, 0x00, 0x00, 0x64, 0x08, 222 0x02, 0xc1, 0x9f, 0xaf, 0x70, 0x03, 0xe7, 0x05, 223 0x00, 0xc0, 0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0, 224 0xc1, 0xdf, 0xc8, 0x09, 0x72, 0x08, 0x27, 0x02, 225 0x78, 0x08, 0x08, 0x62, 0x03, 0xc1, 0xe7, 0x05, 226 0x00, 0xc0, 0x97, 0xcf, 0x27, 0x04, 0x72, 0x08, 227 0xe7, 0x05, 0x00, 0xc0, 0xf0, 0x07, 0x40, 0x00, 228 0x08, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x04, 0x00, 229 0x00, 0x02, 0xc0, 0x17, 0x0c, 0x00, 0x30, 0x00, 230 0x06, 0x00, 0xf0, 0x07, 0x64, 0x01, 0x0a, 0x00, 231 0xc8, 0x17, 0x04, 0x00, 0xc1, 0x07, 0x02, 0x00, 232 0x51, 0xaf, 0x97, 0xcf, 0xe7, 0x57, 0x00, 0x00, 233 0x6a, 0x08, 0x97, 0xc0, 0xc1, 0xdf, 0xc8, 0x09, 234 0x6a, 0x08, 0x27, 0x04, 0x6a, 0x08, 0x27, 0x52, 235 0x6c, 0x08, 0x03, 0xc1, 0xe7, 0x07, 0x6a, 0x08, 236 0x6c, 0x08, 0xc0, 0xdf, 0x17, 0x02, 0xc8, 0x17, 237 0x0e, 0x00, 0x9f, 0xaf, 0x16, 0x05, 0xc8, 0x05, 238 0x00, 0x60, 0x03, 0xc0, 0x9f, 0xaf, 0x80, 0x04, 239 0x97, 0xcf, 0x9f, 0xaf, 0x68, 0x04, 0x97, 0xcf, 240 0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0x08, 0x62, 241 0x1c, 0xc0, 0xd0, 0x09, 0x72, 0x08, 0x27, 0x02, 242 0x72, 0x08, 0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf, 243 0x97, 0x02, 0xca, 0x09, 0xac, 0x08, 0xf2, 0x17, 244 0x01, 0x00, 0x04, 0x00, 0xf2, 0x27, 0x00, 0x00, 245 0x06, 0x00, 0xca, 0x17, 0x2c, 0x00, 0xf8, 0x77, 246 0x01, 0x00, 0x0e, 0x00, 0x06, 0xc0, 0xca, 0xd9, 247 0xf8, 0x57, 0xff, 0x00, 0x0e, 0x00, 0x01, 0xc1, 248 0xca, 0xd9, 0x22, 0x1c, 0x0c, 0x00, 0xe2, 0x27, 249 0x00, 0x00, 0xe2, 0x17, 0x01, 0x00, 0xe2, 0x27, 250 0x00, 0x00, 0xca, 0x05, 0x00, 0x0c, 0x0c, 0x00, 251 0xc0, 0x17, 0x41, 0x00, 0xc0, 0x67, 0xc0, 0xff, 252 0x30, 0x00, 0x08, 0x00, 0x00, 0x02, 0xc0, 0x17, 253 0x0c, 0x00, 0x30, 0x00, 0x06, 0x00, 0xf0, 0x07, 254 0xdc, 0x00, 0x0a, 0x00, 0xf0, 0x07, 0x00, 0x00, 255 0x04, 0x00, 0x00, 0x0c, 0x08, 0x00, 0x40, 0xd1, 256 0x01, 0x00, 0xc0, 0x19, 0xa6, 0x08, 0xc0, 0x59, 257 0x98, 0x08, 0x04, 0xc9, 0x49, 0xaf, 0x9f, 0xaf, 258 0xee, 0x00, 0x4a, 0xaf, 0x67, 0x10, 0xa6, 0x08, 259 0xc8, 0x17, 0x04, 0x00, 0xc1, 0x07, 0x01, 0x00, 260 0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0x50, 0xaf, 261 0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf, 0xc0, 0x07, 262 0x01, 0x00, 0xc1, 0x09, 0x7c, 0x08, 0xc1, 0x77, 263 0x01, 0x00, 0x97, 0xc1, 0xd8, 0x77, 0x01, 0x00, 264 0x12, 0xc0, 0xc9, 0x07, 0x4c, 0x08, 0x9f, 0xaf, 265 0x64, 0x05, 0x04, 0xc1, 0xc1, 0x77, 0x08, 0x00, 266 0x13, 0xc0, 0x97, 0xcf, 0xc1, 0x77, 0x02, 0x00, 267 0x97, 0xc1, 0xc1, 0x77, 0x10, 0x00, 0x0c, 0xc0, 268 0x9f, 0xaf, 0x86, 0x05, 0x97, 0xcf, 0xc1, 0x77, 269 0x04, 0x00, 0x06, 0xc0, 0xc9, 0x07, 0x7e, 0x08, 270 0x9f, 0xaf, 0x64, 0x05, 0x97, 0xc0, 0x00, 0xcf, 271 0x00, 0x90, 0x97, 0xcf, 0x50, 0x54, 0x97, 0xc1, 272 0x70, 0x5c, 0x02, 0x00, 0x02, 0x00, 0x97, 0xc1, 273 0x70, 0x5c, 0x04, 0x00, 0x04, 0x00, 0x97, 0xcf, 274 0xc0, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 275 0x0c, 0x00, 0x06, 0x00, 0x00, 0x00, 0xcb, 0x09, 276 0x88, 0x08, 0xcc, 0x09, 0x8a, 0x08, 0x0b, 0x53, 277 0x11, 0xc0, 0xc9, 0x02, 0xca, 0x07, 0x78, 0x05, 278 0x9f, 0xaf, 0x64, 0x05, 0x97, 0xc0, 0x0a, 0xc8, 279 0x82, 0x08, 0x0a, 0xcf, 0x82, 0x08, 0x9f, 0xaf, 280 0x64, 0x05, 0x97, 0xc0, 0x05, 0xc2, 0x89, 0x30, 281 0x82, 0x60, 0x78, 0xc1, 0x00, 0x90, 0x97, 0xcf, 282 0x89, 0x10, 0x09, 0x53, 0x79, 0xc2, 0x89, 0x30, 283 0x82, 0x08, 0x7a, 0xcf, 0xc0, 0xdf, 0x97, 0xcf, 284 0xe7, 0x09, 0x96, 0xc0, 0x66, 0x08, 0xe7, 0x09, 285 0x98, 0xc0, 0x68, 0x08, 0x0f, 0xcf, 0xe7, 0x09, 286 0x96, 0xc0, 0x66, 0x08, 0xe7, 0x09, 0x98, 0xc0, 287 0x68, 0x08, 0xe7, 0x09, 0x64, 0x08, 0x30, 0x01, 288 0xe7, 0x07, 0xf2, 0x05, 0x32, 0x01, 0xe7, 0x07, 289 0x10, 0x00, 0x96, 0xc0, 0xd7, 0x09, 0x00, 0xc0, 290 0x17, 0x02, 0xc8, 0x09, 0x62, 0x08, 0xc8, 0x37, 291 0x0e, 0x00, 0xe7, 0x57, 0x04, 0x00, 0x68, 0x08, 292 0x3d, 0xc0, 0xe7, 0x87, 0x00, 0x08, 0x24, 0xc0, 293 0xe7, 0x09, 0x94, 0x08, 0xba, 0x08, 0xe7, 0x17, 294 0x64, 0x00, 0xba, 0x08, 0xe7, 0x67, 0xff, 0x07, 295 0xba, 0x08, 0xe7, 0x77, 0x2a, 0x00, 0x66, 0x08, 296 0x30, 0xc0, 0x97, 0x02, 0xca, 0x09, 0xac, 0x08, 297 0xe7, 0x77, 0x20, 0x00, 0x66, 0x08, 0x0e, 0xc0, 298 0xf2, 0x17, 0x01, 0x00, 0x10, 0x00, 0xf2, 0x27, 299 0x00, 0x00, 0x12, 0x00, 0xe7, 0x77, 0x0a, 0x00, 300 0x66, 0x08, 0xca, 0x05, 0x1e, 0xc0, 0x97, 0x02, 301 0xca, 0x09, 0xac, 0x08, 0xf2, 0x17, 0x01, 0x00, 302 0x0c, 0x00, 0xf2, 0x27, 0x00, 0x00, 0x0e, 0x00, 303 0xe7, 0x77, 0x02, 0x00, 0x66, 0x08, 0x07, 0xc0, 304 0xf2, 0x17, 0x01, 0x00, 0x44, 0x00, 0xf2, 0x27, 305 0x00, 0x00, 0x46, 0x00, 0x06, 0xcf, 0xf2, 0x17, 306 0x01, 0x00, 0x60, 0x00, 0xf2, 0x27, 0x00, 0x00, 307 0x62, 0x00, 0xca, 0x05, 0x9f, 0xaf, 0x68, 0x04, 308 0x0f, 0xcf, 0x57, 0x02, 0x09, 0x02, 0xf1, 0x09, 309 0x68, 0x08, 0x0c, 0x00, 0xf1, 0xda, 0x0c, 0x00, 310 0xc8, 0x09, 0x6c, 0x08, 0x50, 0x02, 0x67, 0x02, 311 0x6c, 0x08, 0xd1, 0x07, 0x00, 0x00, 0xc9, 0x05, 312 0xe7, 0x09, 0x64, 0x08, 0x62, 0x08, 0xe7, 0x57, 313 0x00, 0x00, 0x62, 0x08, 0x02, 0xc0, 0x9f, 0xaf, 314 0x70, 0x03, 0xc8, 0x05, 0xe7, 0x05, 0x00, 0xc0, 315 0xc0, 0xdf, 0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0, 316 0x17, 0x00, 0x17, 0x02, 0x97, 0x02, 0xc0, 0x09, 317 0x92, 0xc0, 0xe7, 0x87, 0x00, 0x08, 0x24, 0xc0, 318 0xe7, 0x09, 0x94, 0x08, 0xba, 0x08, 0xe7, 0x17, 319 0x64, 0x00, 0xba, 0x08, 0xe7, 0x67, 0xff, 0x07, 320 0xba, 0x08, 0xe7, 0x07, 0x04, 0x00, 0x90, 0xc0, 321 0xca, 0x09, 0xac, 0x08, 0xe7, 0x07, 0x00, 0x00, 322 0x7a, 0x08, 0xe7, 0x07, 0x66, 0x03, 0x02, 0x00, 323 0xc0, 0x77, 0x02, 0x00, 0x10, 0xc0, 0xef, 0x57, 324 0x00, 0x00, 0xf0, 0x09, 0x04, 0xc0, 0x9f, 0xaf, 325 0xd8, 0x02, 0x9f, 0xcf, 0x12, 0x08, 0xf2, 0x17, 326 0x01, 0x00, 0x50, 0x00, 0xf2, 0x27, 0x00, 0x00, 327 0x52, 0x00, 0x9f, 0xcf, 0x12, 0x08, 0xef, 0x57, 328 0x00, 0x00, 0xf0, 0x09, 0x08, 0xc0, 0xe7, 0x57, 329 0x00, 0x00, 0xb8, 0x08, 0xe7, 0x07, 0x00, 0x00, 330 0xb8, 0x08, 0x0a, 0xc0, 0x03, 0xcf, 0xc0, 0x77, 331 0x10, 0x00, 0x06, 0xc0, 0xf2, 0x17, 0x01, 0x00, 332 0x58, 0x00, 0xf2, 0x27, 0x00, 0x00, 0x5a, 0x00, 333 0xc0, 0x77, 0x80, 0x00, 0x06, 0xc0, 0xf2, 0x17, 334 0x01, 0x00, 0x70, 0x00, 0xf2, 0x27, 0x00, 0x00, 335 0x72, 0x00, 0xc0, 0x77, 0x08, 0x00, 0x1d, 0xc1, 336 0xf2, 0x17, 0x01, 0x00, 0x08, 0x00, 0xf2, 0x27, 337 0x00, 0x00, 0x0a, 0x00, 0xc0, 0x77, 0x00, 0x02, 338 0x06, 0xc0, 0xf2, 0x17, 0x01, 0x00, 0x64, 0x00, 339 0xf2, 0x27, 0x00, 0x00, 0x66, 0x00, 0xc0, 0x77, 340 0x40, 0x00, 0x06, 0xc0, 0xf2, 0x17, 0x01, 0x00, 341 0x5c, 0x00, 0xf2, 0x27, 0x00, 0x00, 0x5e, 0x00, 342 0xc0, 0x77, 0x01, 0x00, 0x01, 0xc0, 0x37, 0xcf, 343 0x36, 0xcf, 0xf2, 0x17, 0x01, 0x00, 0x00, 0x00, 344 0xf2, 0x27, 0x00, 0x00, 0x02, 0x00, 0xef, 0x57, 345 0x00, 0x00, 0xf0, 0x09, 0x18, 0xc0, 0xe7, 0x57, 346 0x01, 0x00, 0xb2, 0x08, 0x0e, 0xc2, 0x07, 0xc8, 347 0xf2, 0x17, 0x01, 0x00, 0x50, 0x00, 0xf2, 0x27, 348 0x00, 0x00, 0x52, 0x00, 0x06, 0xcf, 0xf2, 0x17, 349 0x01, 0x00, 0x54, 0x00, 0xf2, 0x27, 0x00, 0x00, 350 0x56, 0x00, 0xe7, 0x07, 0x00, 0x00, 0xb2, 0x08, 351 0xe7, 0x07, 0x01, 0x00, 0xb4, 0x08, 0xc8, 0x09, 352 0x34, 0x01, 0xca, 0x17, 0x14, 0x00, 0xd8, 0x77, 353 0x01, 0x00, 0x05, 0xc0, 0xca, 0xd9, 0xd8, 0x57, 354 0xff, 0x00, 0x01, 0xc0, 0xca, 0xd9, 0xe2, 0x19, 355 0x94, 0xc0, 0xe2, 0x27, 0x00, 0x00, 0xe2, 0x17, 356 0x01, 0x00, 0xe2, 0x27, 0x00, 0x00, 0x9f, 0xaf, 357 0x2e, 0x08, 0x9f, 0xaf, 0xde, 0x01, 0xe7, 0x57, 358 0x00, 0x00, 0xaa, 0x08, 0x9f, 0xa1, 0xf0, 0x0b, 359 0xca, 0x05, 0xc8, 0x05, 0xc0, 0x05, 0xe7, 0x05, 360 0x00, 0xc0, 0xc0, 0xdf, 0x97, 0xcf, 0xc8, 0x09, 361 0x6e, 0x08, 0x08, 0x62, 0x97, 0xc0, 0x27, 0x04, 362 0x6e, 0x08, 0x27, 0x52, 0x70, 0x08, 0x03, 0xc1, 363 0xe7, 0x07, 0x6e, 0x08, 0x70, 0x08, 0x9f, 0xaf, 364 0x68, 0x04, 0x97, 0xcf, 0xff, 0xff, 0xff, 0xff, 365 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 366 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 367 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 368 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 369 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 370 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 371 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 372 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 373 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 374 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 375 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 376 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 377 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x33, 0xcc, 378 0x00, 0x00, 0x00, 0x00, 0xe7, 0x57, 0x00, 0x80, 379 0xb2, 0x00, 0x06, 0xc2, 0xe7, 0x07, 0x52, 0x0e, 380 0x12, 0x00, 0xe7, 0x07, 0x98, 0x0e, 0xb2, 0x00, 381 0xe7, 0x07, 0xa4, 0x09, 0xf2, 0x02, 0xc8, 0x09, 382 0xb4, 0x00, 0xf8, 0x07, 0x02, 0x00, 0x0d, 0x00, 383 0xd7, 0x09, 0x0e, 0xc0, 0xe7, 0x07, 0x00, 0x00, 384 0x0e, 0xc0, 0xc8, 0x09, 0xdc, 0x00, 0xf0, 0x07, 385 0xff, 0xff, 0x09, 0x00, 0xf0, 0x07, 0xfb, 0x13, 386 0x0b, 0x00, 0xe7, 0x09, 0xc0, 0x00, 0x58, 0x08, 387 0xe7, 0x09, 0xbe, 0x00, 0x54, 0x08, 0xe7, 0x09, 388 0x10, 0x00, 0x92, 0x08, 0xc8, 0x07, 0xb4, 0x09, 389 0x9f, 0xaf, 0x8c, 0x09, 0x9f, 0xaf, 0xe2, 0x0b, 390 0xc0, 0x07, 0x80, 0x01, 0x44, 0xaf, 0x27, 0x00, 391 0x88, 0x08, 0x27, 0x00, 0x8a, 0x08, 0x27, 0x00, 392 0x8c, 0x08, 0xc0, 0x07, 0x74, 0x00, 0x44, 0xaf, 393 0x27, 0x00, 0xac, 0x08, 0x08, 0x00, 0x00, 0x90, 394 0xc1, 0x07, 0x1d, 0x00, 0x20, 0x00, 0x20, 0x00, 395 0x01, 0xda, 0x7c, 0xc1, 0x9f, 0xaf, 0x8a, 0x0b, 396 0xc0, 0x07, 0x4c, 0x00, 0x48, 0xaf, 0x27, 0x00, 397 0x56, 0x08, 0x9f, 0xaf, 0x72, 0x0c, 0xe7, 0x07, 398 0x00, 0x80, 0x96, 0x08, 0xef, 0x57, 0x00, 0x00, 399 0xf0, 0x09, 0x03, 0xc0, 0xe7, 0x07, 0x01, 0x00, 400 0x1c, 0xc0, 0xe7, 0x05, 0x0e, 0xc0, 0x97, 0xcf, 401 0x49, 0xaf, 0xe7, 0x87, 0x43, 0x00, 0x0e, 0xc0, 402 0xe7, 0x07, 0xff, 0xff, 0x94, 0x08, 0x9f, 0xaf, 403 0x8a, 0x0c, 0xc0, 0x07, 0x01, 0x00, 0x60, 0xaf, 404 0x4a, 0xaf, 0x97, 0xcf, 0x00, 0x08, 0x09, 0x08, 405 0x11, 0x08, 0x00, 0xda, 0x7c, 0xc1, 0x97, 0xcf, 406 0x67, 0x04, 0xcc, 0x02, 0xc0, 0xdf, 0x51, 0x94, 407 0xb1, 0xaf, 0x06, 0x00, 0xc1, 0xdf, 0xc9, 0x09, 408 0xcc, 0x02, 0x49, 0x62, 0x75, 0xc1, 0xc0, 0xdf, 409 0xa7, 0xcf, 0xd6, 0x02, 0x0e, 0x00, 0x24, 0x00, 410 0xd6, 0x05, 0x22, 0x00, 0xc4, 0x06, 0xd0, 0x00, 411 0xf0, 0x0b, 0xaa, 0x00, 0x0e, 0x0a, 0xbe, 0x00, 412 0x2c, 0x0c, 0x10, 0x00, 0x20, 0x00, 0x04, 0x00, 413 0xc4, 0x05, 0x02, 0x00, 0x66, 0x03, 0x06, 0x00, 414 0x00, 0x00, 0x24, 0xc0, 0x04, 0x04, 0x28, 0xc0, 415 0xfe, 0xfb, 0x1e, 0xc0, 0x00, 0x04, 0x22, 0xc0, 416 0xff, 0xf0, 0xc0, 0x00, 0x60, 0x0b, 0x00, 0x00, 417 0x00, 0x00, 0xff, 0xff, 0x34, 0x0a, 0x3e, 0x0a, 418 0x9e, 0x0a, 0xa8, 0x0a, 0xce, 0x0a, 0xd2, 0x0a, 419 0xd6, 0x0a, 0x00, 0x0b, 0x10, 0x0b, 0x1e, 0x0b, 420 0x20, 0x0b, 0x28, 0x0b, 0x28, 0x0b, 0x27, 0x02, 421 0xa2, 0x08, 0x97, 0xcf, 0xe7, 0x07, 0x00, 0x00, 422 0xa2, 0x08, 0x0a, 0x0e, 0x01, 0x00, 0xca, 0x57, 423 0x0e, 0x00, 0x9f, 0xc3, 0x2a, 0x0b, 0xca, 0x37, 424 0x00, 0x00, 0x9f, 0xc2, 0x2a, 0x0b, 0x0a, 0xd2, 425 0xb2, 0xcf, 0xf4, 0x09, 0xc8, 0x09, 0xde, 0x00, 426 0x07, 0x06, 0x9f, 0xcf, 0x3c, 0x0b, 0xf0, 0x57, 427 0x80, 0x01, 0x06, 0x00, 0x9f, 0xc8, 0x2a, 0x0b, 428 0x27, 0x0c, 0x02, 0x00, 0x86, 0x08, 0xc0, 0x09, 429 0x88, 0x08, 0x27, 0x00, 0x8a, 0x08, 0xe7, 0x07, 430 0x00, 0x00, 0x84, 0x08, 0x27, 0x00, 0x5c, 0x08, 431 0x00, 0x1c, 0x06, 0x00, 0x27, 0x00, 0x8c, 0x08, 432 0x41, 0x90, 0x67, 0x50, 0x86, 0x08, 0x0d, 0xc0, 433 0x67, 0x00, 0x5a, 0x08, 0x27, 0x0c, 0x06, 0x00, 434 0x5e, 0x08, 0xe7, 0x07, 0x8a, 0x0a, 0x60, 0x08, 435 0xc8, 0x07, 0x5a, 0x08, 0x41, 0x90, 0x51, 0xaf, 436 0x97, 0xcf, 0x9f, 0xaf, 0xac, 0x0e, 0xe7, 0x09, 437 0x8c, 0x08, 0x8a, 0x08, 0xe7, 0x09, 0x86, 0x08, 438 0x84, 0x08, 0x59, 0xaf, 0x97, 0xcf, 0x27, 0x0c, 439 0x02, 0x00, 0x7c, 0x08, 0x59, 0xaf, 0x97, 0xcf, 440 0x09, 0x0c, 0x02, 0x00, 0x09, 0xda, 0x49, 0xd2, 441 0xc9, 0x19, 0xac, 0x08, 0xc8, 0x07, 0x5a, 0x08, 442 0xe0, 0x07, 0x00, 0x00, 0x60, 0x02, 0xe0, 0x07, 443 0x04, 0x00, 0xd0, 0x07, 0x9a, 0x0a, 0x48, 0xdb, 444 0x41, 0x90, 0x50, 0xaf, 0x97, 0xcf, 0x59, 0xaf, 445 0x97, 0xcf, 0x59, 0xaf, 0x97, 0xcf, 0xf0, 0x57, 446 0x06, 0x00, 0x06, 0x00, 0x26, 0xc1, 0xe7, 0x07, 447 0x7e, 0x08, 0x5c, 0x08, 0x41, 0x90, 0x67, 0x00, 448 0x5a, 0x08, 0x27, 0x0c, 0x06, 0x00, 0x5e, 0x08, 449 0xe7, 0x07, 0x5c, 0x0b, 0x60, 0x08, 0xc8, 0x07, 450 0x5a, 0x08, 0x41, 0x90, 0x51, 0xaf, 0x97, 0xcf, 451 0x07, 0x0c, 0x06, 0x00, 0xc7, 0x57, 0x06, 0x00, 452 0x10, 0xc1, 0xc8, 0x07, 0x7e, 0x08, 0x16, 0xcf, 453 0x00, 0x0c, 0x02, 0x00, 0x00, 0xda, 0x40, 0xd1, 454 0x27, 0x00, 0x98, 0x08, 0x1f, 0xcf, 0x1e, 0xcf, 455 0x27, 0x0c, 0x02, 0x00, 0xa4, 0x08, 0x1a, 0xcf, 456 0x00, 0xcf, 0x27, 0x02, 0x20, 0x01, 0xe7, 0x07, 457 0x08, 0x00, 0x22, 0x01, 0xe7, 0x07, 0x13, 0x00, 458 0xb0, 0xc0, 0x97, 0xcf, 0x41, 0x90, 0x67, 0x00, 459 0x5a, 0x08, 0xe7, 0x01, 0x5e, 0x08, 0x27, 0x02, 460 0x5c, 0x08, 0xe7, 0x07, 0x5c, 0x0b, 0x60, 0x08, 461 0xc8, 0x07, 0x5a, 0x08, 0xc1, 0x07, 0x00, 0x80, 462 0x50, 0xaf, 0x97, 0xcf, 0x59, 0xaf, 0x97, 0xcf, 463 0x00, 0x60, 0x05, 0xc0, 0xe7, 0x07, 0x00, 0x00, 464 0x9a, 0x08, 0xa7, 0xcf, 0x58, 0x08, 0x9f, 0xaf, 465 0xe2, 0x0b, 0xe7, 0x07, 0x01, 0x00, 0x9a, 0x08, 466 0x49, 0xaf, 0xd7, 0x09, 0x00, 0xc0, 0x07, 0xaf, 467 0xe7, 0x05, 0x00, 0xc0, 0x4a, 0xaf, 0xa7, 0xcf, 468 0x58, 0x08, 0xc0, 0x07, 0x40, 0x00, 0x44, 0xaf, 469 0x27, 0x00, 0xa0, 0x08, 0x08, 0x00, 0xc0, 0x07, 470 0x20, 0x00, 0x20, 0x94, 0x00, 0xda, 0x7d, 0xc1, 471 0xc0, 0x07, 0xfe, 0x7f, 0x44, 0xaf, 0x40, 0x00, 472 0x41, 0x90, 0xc0, 0x37, 0x08, 0x00, 0xdf, 0xde, 473 0x50, 0x06, 0xc0, 0x57, 0x10, 0x00, 0x02, 0xc2, 474 0xc0, 0x07, 0x10, 0x00, 0x27, 0x00, 0x76, 0x08, 475 0x41, 0x90, 0x9f, 0xde, 0x40, 0x06, 0x44, 0xaf, 476 0x27, 0x00, 0x74, 0x08, 0xc0, 0x09, 0x76, 0x08, 477 0x41, 0x90, 0x00, 0xd2, 0x00, 0xd8, 0x9f, 0xde, 478 0x08, 0x00, 0x44, 0xaf, 0x27, 0x00, 0x9e, 0x08, 479 0x97, 0xcf, 0xe7, 0x87, 0x00, 0x84, 0x28, 0xc0, 480 0xe7, 0x67, 0xff, 0xf3, 0x24, 0xc0, 0x97, 0xcf, 481 0xe7, 0x87, 0x01, 0x00, 0xaa, 0x08, 0xe7, 0x57, 482 0x00, 0x00, 0x7a, 0x08, 0x97, 0xc1, 0x9f, 0xaf, 483 0xe2, 0x0b, 0xe7, 0x87, 0x00, 0x06, 0x22, 0xc0, 484 0xe7, 0x07, 0x00, 0x00, 0x90, 0xc0, 0xe7, 0x67, 485 0xfe, 0xff, 0x3e, 0xc0, 0xe7, 0x07, 0x2e, 0x00, 486 0x0a, 0xc0, 0xe7, 0x87, 0x01, 0x00, 0x3e, 0xc0, 487 0xe7, 0x07, 0xff, 0xff, 0x94, 0x08, 0x9f, 0xaf, 488 0xf0, 0x0c, 0x97, 0xcf, 0x17, 0x00, 0xa7, 0xaf, 489 0x54, 0x08, 0xc0, 0x05, 0x27, 0x00, 0x52, 0x08, 490 0xe7, 0x87, 0x01, 0x00, 0xaa, 0x08, 0x9f, 0xaf, 491 0xe2, 0x0b, 0xe7, 0x07, 0x0c, 0x00, 0x40, 0xc0, 492 0x9f, 0xaf, 0xf0, 0x0c, 0xe7, 0x07, 0x00, 0x00, 493 0x78, 0x08, 0x00, 0x90, 0xe7, 0x09, 0x88, 0x08, 494 0x8a, 0x08, 0x27, 0x00, 0x84, 0x08, 0x27, 0x00, 495 0x7c, 0x08, 0x9f, 0xaf, 0x8a, 0x0c, 0xe7, 0x07, 496 0x00, 0x00, 0xb2, 0x02, 0xe7, 0x07, 0x00, 0x00, 497 0xb4, 0x02, 0xc0, 0x07, 0x06, 0x00, 0xc8, 0x09, 498 0xde, 0x00, 0xc8, 0x17, 0x03, 0x00, 0xc9, 0x07, 499 0x7e, 0x08, 0x29, 0x0a, 0x00, 0xda, 0x7d, 0xc1, 500 0x97, 0xcf, 0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 501 0x00, 0x90, 0x27, 0x00, 0x6a, 0x08, 0xe7, 0x07, 502 0x6a, 0x08, 0x6c, 0x08, 0x27, 0x00, 0x6e, 0x08, 503 0xe7, 0x07, 0x6e, 0x08, 0x70, 0x08, 0x27, 0x00, 504 0x78, 0x08, 0x27, 0x00, 0x62, 0x08, 0x27, 0x00, 505 0x64, 0x08, 0xc8, 0x09, 0x74, 0x08, 0xc1, 0x09, 506 0x76, 0x08, 0xc9, 0x07, 0x72, 0x08, 0x11, 0x02, 507 0x09, 0x02, 0xc8, 0x17, 0x40, 0x06, 0x01, 0xda, 508 0x7a, 0xc1, 0x51, 0x94, 0xc8, 0x09, 0x9e, 0x08, 509 0xc9, 0x07, 0x9c, 0x08, 0xc1, 0x09, 0x76, 0x08, 510 0x01, 0xd2, 0x01, 0xd8, 0x11, 0x02, 0x09, 0x02, 511 0xc8, 0x17, 0x08, 0x00, 0x01, 0xda, 0x7a, 0xc1, 512 0x51, 0x94, 0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf, 513 0xe7, 0x57, 0x00, 0x00, 0x52, 0x08, 0x97, 0xc0, 514 0x9f, 0xaf, 0x04, 0x00, 0xe7, 0x09, 0x94, 0x08, 515 0x90, 0x08, 0xe7, 0x57, 0xff, 0xff, 0x90, 0x08, 516 0x04, 0xc1, 0xe7, 0x07, 0xf0, 0x0c, 0x8e, 0x08, 517 0x97, 0xcf, 0xe7, 0x17, 0x32, 0x00, 0x90, 0x08, 518 0xe7, 0x67, 0xff, 0x07, 0x90, 0x08, 0xe7, 0x07, 519 0x26, 0x0d, 0x8e, 0x08, 0x97, 0xcf, 0xd7, 0x09, 520 0x00, 0xc0, 0xc1, 0xdf, 0xe7, 0x57, 0x00, 0x00, 521 0x96, 0x08, 0x23, 0xc0, 0xe7, 0x07, 0x00, 0x80, 522 0x80, 0xc0, 0xe7, 0x07, 0x04, 0x00, 0x90, 0xc0, 523 0xe7, 0x07, 0x00, 0x00, 0x80, 0xc0, 0xe7, 0x07, 524 0x00, 0x80, 0x80, 0xc0, 0xc0, 0x07, 0x00, 0x00, 525 0xc0, 0x07, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 526 0xe7, 0x07, 0x00, 0x00, 0x80, 0xc0, 0xe7, 0x07, 527 0x00, 0x80, 0x80, 0xc0, 0xe7, 0x07, 0x00, 0x80, 528 0x40, 0xc0, 0xc0, 0x07, 0x00, 0x00, 0xe7, 0x07, 529 0x00, 0x00, 0x40, 0xc0, 0xe7, 0x07, 0x00, 0x00, 530 0x80, 0xc0, 0xef, 0x57, 0x00, 0x00, 0xf1, 0x09, 531 0x9f, 0xa0, 0xc0, 0x0d, 0xe7, 0x07, 0x04, 0x00, 532 0x90, 0xc0, 0xe7, 0x07, 0x00, 0x02, 0x40, 0xc0, 533 0xe7, 0x07, 0x0c, 0x02, 0x40, 0xc0, 0xe7, 0x07, 534 0x00, 0x00, 0x96, 0x08, 0xe7, 0x07, 0x00, 0x00, 535 0x8e, 0x08, 0xe7, 0x07, 0x00, 0x00, 0xaa, 0x08, 536 0xd7, 0x09, 0x00, 0xc0, 0xc1, 0xdf, 0x9f, 0xaf, 537 0x9e, 0x03, 0xe7, 0x05, 0x00, 0xc0, 0x9f, 0xaf, 538 0xde, 0x01, 0xe7, 0x05, 0x00, 0xc0, 0x97, 0xcf, 539 0x9f, 0xaf, 0xde, 0x0d, 0xef, 0x77, 0x00, 0x00, 540 0xf1, 0x09, 0x97, 0xc1, 0x9f, 0xaf, 0xde, 0x0d, 541 0xef, 0x77, 0x00, 0x00, 0xf1, 0x09, 0x97, 0xc1, 542 0xef, 0x07, 0x01, 0x00, 0xf1, 0x09, 0xe7, 0x87, 543 0x00, 0x08, 0x1e, 0xc0, 0xe7, 0x87, 0x00, 0x08, 544 0x22, 0xc0, 0xe7, 0x67, 0xff, 0xf7, 0x22, 0xc0, 545 0xe7, 0x77, 0x00, 0x08, 0x20, 0xc0, 0x11, 0xc0, 546 0xe7, 0x67, 0xff, 0xf7, 0x1e, 0xc0, 0xe7, 0x87, 547 0x00, 0x08, 0x22, 0xc0, 0xe7, 0x67, 0xff, 0xf7, 548 0x22, 0xc0, 0xe7, 0x77, 0x00, 0x08, 0x20, 0xc0, 549 0x04, 0xc1, 0xe7, 0x87, 0x00, 0x08, 0x22, 0xc0, 550 0x97, 0xcf, 0xe7, 0x07, 0x01, 0x01, 0xf0, 0x09, 551 0xef, 0x57, 0x18, 0x00, 0xfe, 0xff, 0x97, 0xc2, 552 0xef, 0x07, 0x00, 0x00, 0xf0, 0x09, 0x97, 0xcf, 553 0xd7, 0x09, 0x00, 0xc0, 0x17, 0x00, 0x17, 0x02, 554 0x97, 0x02, 0xe7, 0x57, 0x00, 0x00, 0x7a, 0x08, 555 0x06, 0xc0, 0xc0, 0x09, 0x92, 0xc0, 0xc0, 0x77, 556 0x09, 0x02, 0x9f, 0xc1, 0xea, 0x06, 0x9f, 0xcf, 557 0x20, 0x08, 0xd7, 0x09, 0x0e, 0xc0, 0xe7, 0x07, 558 0x00, 0x00, 0x0e, 0xc0, 0x9f, 0xaf, 0x66, 0x0e, 559 0xe7, 0x05, 0x0e, 0xc0, 0x97, 0xcf, 0xd7, 0x09, 560 0x00, 0xc0, 0x17, 0x02, 0xc8, 0x09, 0xb0, 0xc0, 561 0xe7, 0x67, 0xfe, 0x7f, 0xb0, 0xc0, 0xc8, 0x77, 562 0x00, 0x20, 0x9f, 0xc1, 0x64, 0xeb, 0xe7, 0x57, 563 0x00, 0x00, 0xc8, 0x02, 0x9f, 0xc1, 0x80, 0xeb, 564 0xc8, 0x99, 0xca, 0x02, 0xc8, 0x67, 0x04, 0x00, 565 0x9f, 0xc1, 0x96, 0xeb, 0x9f, 0xcf, 0x4c, 0xeb, 566 0xe7, 0x07, 0x00, 0x00, 0xa6, 0xc0, 0xe7, 0x09, 567 0xb0, 0xc0, 0xc8, 0x02, 0xe7, 0x07, 0x03, 0x00, 568 0xb0, 0xc0, 0x97, 0xcf, 0xc0, 0x09, 0x86, 0x08, 569 0xc0, 0x37, 0x01, 0x00, 0x97, 0xc9, 0xc9, 0x09, 570 0x88, 0x08, 0x02, 0x00, 0x41, 0x90, 0x48, 0x02, 571 0xc9, 0x17, 0x06, 0x00, 0x9f, 0xaf, 0x64, 0x05, 572 0x9f, 0xa2, 0xd6, 0x0e, 0x02, 0xda, 0x77, 0xc1, 573 0x41, 0x60, 0x71, 0xc1, 0x97, 0xcf, 0x17, 0x02, 574 0x57, 0x02, 0x43, 0x04, 0x21, 0x04, 0xe0, 0x00, 575 0x43, 0x04, 0x21, 0x04, 0xe0, 0x00, 0x43, 0x04, 576 0x21, 0x04, 0xe0, 0x00, 0xc1, 0x07, 0x01, 0x00, 577 0xc9, 0x05, 0xc8, 0x05, 0x97, 0xcf, 578 0, 0 579 }; 580 581 /* Firmware fixup (data?) segment */ 582 static unsigned char kue_fix_seg[] = 583 { 584 /******************************************/ 585 /* NOTE: B6/C3 is data header signature */ 586 /* 0xAA/0xBB is data length = total */ 587 /* bytes - 7, 0xCC is type, 0xDD is */ 588 /* interrupt to use. */ 589 /******************************************/ 590 0xB6, 0xC3, 0xc9, 0x02, 0x03, 0x64, 591 0x02, 0x00, 0x08, 0x00, 0x24, 0x00, 0x2e, 0x00, 592 0x2c, 0x00, 0x3e, 0x00, 0x44, 0x00, 0x48, 0x00, 593 0x50, 0x00, 0x5c, 0x00, 0x60, 0x00, 0x66, 0x00, 594 0x6c, 0x00, 0x70, 0x00, 0x76, 0x00, 0x74, 0x00, 595 0x7a, 0x00, 0x7e, 0x00, 0x84, 0x00, 0x8a, 0x00, 596 0x8e, 0x00, 0x92, 0x00, 0x98, 0x00, 0x9c, 0x00, 597 0xa0, 0x00, 0xa8, 0x00, 0xae, 0x00, 0xb4, 0x00, 598 0xb2, 0x00, 0xba, 0x00, 0xbe, 0x00, 0xc4, 0x00, 599 0xc8, 0x00, 0xce, 0x00, 0xd2, 0x00, 0xd6, 0x00, 600 0xda, 0x00, 0xe2, 0x00, 0xe0, 0x00, 0xea, 0x00, 601 0xf2, 0x00, 0xfe, 0x00, 0x06, 0x01, 0x0c, 0x01, 602 0x1a, 0x01, 0x24, 0x01, 0x22, 0x01, 0x2a, 0x01, 603 0x30, 0x01, 0x36, 0x01, 0x3c, 0x01, 0x4e, 0x01, 604 0x52, 0x01, 0x58, 0x01, 0x5c, 0x01, 0x9c, 0x01, 605 0xb6, 0x01, 0xba, 0x01, 0xc0, 0x01, 0xca, 0x01, 606 0xd0, 0x01, 0xda, 0x01, 0xe2, 0x01, 0xea, 0x01, 607 0xf0, 0x01, 0x0a, 0x02, 0x0e, 0x02, 0x14, 0x02, 608 0x26, 0x02, 0x6c, 0x02, 0x8e, 0x02, 0x98, 0x02, 609 0xa0, 0x02, 0xa6, 0x02, 0xba, 0x02, 0xc6, 0x02, 610 0xce, 0x02, 0xe8, 0x02, 0xee, 0x02, 0xf4, 0x02, 611 0xf8, 0x02, 0x0a, 0x03, 0x10, 0x03, 0x1a, 0x03, 612 0x1e, 0x03, 0x2a, 0x03, 0x2e, 0x03, 0x34, 0x03, 613 0x3a, 0x03, 0x44, 0x03, 0x4e, 0x03, 0x5a, 0x03, 614 0x5e, 0x03, 0x6a, 0x03, 0x72, 0x03, 0x80, 0x03, 615 0x84, 0x03, 0x8c, 0x03, 0x94, 0x03, 0x98, 0x03, 616 0xa8, 0x03, 0xae, 0x03, 0xb4, 0x03, 0xba, 0x03, 617 0xce, 0x03, 0xcc, 0x03, 0xd6, 0x03, 0xdc, 0x03, 618 0xec, 0x03, 0xf0, 0x03, 0xfe, 0x03, 0x1c, 0x04, 619 0x30, 0x04, 0x38, 0x04, 0x3c, 0x04, 0x40, 0x04, 620 0x48, 0x04, 0x46, 0x04, 0x54, 0x04, 0x5e, 0x04, 621 0x64, 0x04, 0x74, 0x04, 0x78, 0x04, 0x84, 0x04, 622 0xd8, 0x04, 0xec, 0x04, 0xf0, 0x04, 0xf8, 0x04, 623 0xfe, 0x04, 0x1c, 0x05, 0x2c, 0x05, 0x30, 0x05, 624 0x4a, 0x05, 0x56, 0x05, 0x5a, 0x05, 0x88, 0x05, 625 0x8c, 0x05, 0x96, 0x05, 0x9a, 0x05, 0xa8, 0x05, 626 0xcc, 0x05, 0xd2, 0x05, 0xda, 0x05, 0xe0, 0x05, 627 0xe4, 0x05, 0xfc, 0x05, 0x06, 0x06, 0x14, 0x06, 628 0x12, 0x06, 0x1a, 0x06, 0x20, 0x06, 0x26, 0x06, 629 0x2e, 0x06, 0x34, 0x06, 0x48, 0x06, 0x52, 0x06, 630 0x64, 0x06, 0x86, 0x06, 0x90, 0x06, 0x9a, 0x06, 631 0xa0, 0x06, 0xac, 0x06, 0xaa, 0x06, 0xb2, 0x06, 632 0xb8, 0x06, 0xdc, 0x06, 0xda, 0x06, 0xe2, 0x06, 633 0xe8, 0x06, 0xf2, 0x06, 0xf8, 0x06, 0xfc, 0x06, 634 0x0a, 0x07, 0x10, 0x07, 0x14, 0x07, 0x24, 0x07, 635 0x2a, 0x07, 0x32, 0x07, 0x38, 0x07, 0xb2, 0x07, 636 0xba, 0x07, 0xde, 0x07, 0xe4, 0x07, 0x10, 0x08, 637 0x14, 0x08, 0x1a, 0x08, 0x1e, 0x08, 0x30, 0x08, 638 0x38, 0x08, 0x3c, 0x08, 0x44, 0x08, 0x42, 0x08, 639 0x48, 0x08, 0xc6, 0x08, 0xcc, 0x08, 0xd2, 0x08, 640 0xfe, 0x08, 0x04, 0x09, 0x0a, 0x09, 0x0e, 0x09, 641 0x12, 0x09, 0x16, 0x09, 0x20, 0x09, 0x24, 0x09, 642 0x28, 0x09, 0x32, 0x09, 0x46, 0x09, 0x4a, 0x09, 643 0x50, 0x09, 0x54, 0x09, 0x5a, 0x09, 0x60, 0x09, 644 0x7c, 0x09, 0x80, 0x09, 0xb8, 0x09, 0xbc, 0x09, 645 0xc0, 0x09, 0xc4, 0x09, 0xc8, 0x09, 0xcc, 0x09, 646 0xd0, 0x09, 0xd4, 0x09, 0xec, 0x09, 0xf4, 0x09, 647 0xf6, 0x09, 0xf8, 0x09, 0xfa, 0x09, 0xfc, 0x09, 648 0xfe, 0x09, 0x00, 0x0a, 0x02, 0x0a, 0x04, 0x0a, 649 0x06, 0x0a, 0x08, 0x0a, 0x0a, 0x0a, 0x0c, 0x0a, 650 0x10, 0x0a, 0x18, 0x0a, 0x24, 0x0a, 0x2c, 0x0a, 651 0x32, 0x0a, 0x3c, 0x0a, 0x46, 0x0a, 0x4c, 0x0a, 652 0x50, 0x0a, 0x54, 0x0a, 0x5a, 0x0a, 0x5e, 0x0a, 653 0x66, 0x0a, 0x6c, 0x0a, 0x72, 0x0a, 0x78, 0x0a, 654 0x7e, 0x0a, 0x7c, 0x0a, 0x82, 0x0a, 0x8c, 0x0a, 655 0x92, 0x0a, 0x90, 0x0a, 0x98, 0x0a, 0x96, 0x0a, 656 0xa2, 0x0a, 0xb2, 0x0a, 0xb6, 0x0a, 0xc4, 0x0a, 657 0xe2, 0x0a, 0xe0, 0x0a, 0xe8, 0x0a, 0xee, 0x0a, 658 0xf4, 0x0a, 0xf2, 0x0a, 0xf8, 0x0a, 0x0c, 0x0b, 659 0x1a, 0x0b, 0x24, 0x0b, 0x40, 0x0b, 0x44, 0x0b, 660 0x48, 0x0b, 0x4e, 0x0b, 0x4c, 0x0b, 0x52, 0x0b, 661 0x68, 0x0b, 0x6c, 0x0b, 0x70, 0x0b, 0x76, 0x0b, 662 0x88, 0x0b, 0x92, 0x0b, 0xbe, 0x0b, 0xca, 0x0b, 663 0xce, 0x0b, 0xde, 0x0b, 0xf4, 0x0b, 0xfa, 0x0b, 664 0x00, 0x0c, 0x24, 0x0c, 0x28, 0x0c, 0x30, 0x0c, 665 0x36, 0x0c, 0x3c, 0x0c, 0x40, 0x0c, 0x4a, 0x0c, 666 0x50, 0x0c, 0x58, 0x0c, 0x56, 0x0c, 0x5c, 0x0c, 667 0x60, 0x0c, 0x64, 0x0c, 0x80, 0x0c, 0x94, 0x0c, 668 0x9a, 0x0c, 0x98, 0x0c, 0x9e, 0x0c, 0xa4, 0x0c, 669 0xa2, 0x0c, 0xa8, 0x0c, 0xac, 0x0c, 0xb0, 0x0c, 670 0xb4, 0x0c, 0xb8, 0x0c, 0xbc, 0x0c, 0xce, 0x0c, 671 0xd2, 0x0c, 0xd6, 0x0c, 0xf4, 0x0c, 0xfa, 0x0c, 672 0x00, 0x0d, 0xfe, 0x0c, 0x06, 0x0d, 0x0e, 0x0d, 673 0x0c, 0x0d, 0x16, 0x0d, 0x1c, 0x0d, 0x22, 0x0d, 674 0x20, 0x0d, 0x30, 0x0d, 0x7e, 0x0d, 0x82, 0x0d, 675 0x9a, 0x0d, 0xa0, 0x0d, 0xa6, 0x0d, 0xb0, 0x0d, 676 0xb8, 0x0d, 0xc2, 0x0d, 0xc8, 0x0d, 0xce, 0x0d, 677 0xd4, 0x0d, 0xdc, 0x0d, 0x1e, 0x0e, 0x2c, 0x0e, 678 0x3e, 0x0e, 0x4c, 0x0e, 0x50, 0x0e, 0x5e, 0x0e, 679 0xae, 0x0e, 0xb8, 0x0e, 0xc6, 0x0e, 0xca, 0x0e, 680 0, 0 681 }; 682 683 /* Fixup command. */ 684 #define KUE_TRIGCMD_OFFSET 5 685 static unsigned char kue_trig_seg[] = { 686 0xb6, 0xc3, 0x01, 0x00, 0x06, 0x64, 0x00, 0x00 687 }; 688