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