usb4bsd: Bring in FreeBSD's libusbhid, usbhidctl and USB kernel code.
[dragonfly.git] / sys / bus / u4b / net / if_kuefw.h
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 };