xref: /freebsd/sys/dev/usb/net/if_kuefw.h (revision cfd6422a5217410fbd66f7a7a8a64d9d85e61229)
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