diff options
Diffstat (limited to 'drivers/media/video/tegra/ov14810.c')
-rw-r--r-- | drivers/media/video/tegra/ov14810.c | 1390 |
1 files changed, 1390 insertions, 0 deletions
diff --git a/drivers/media/video/tegra/ov14810.c b/drivers/media/video/tegra/ov14810.c new file mode 100644 index 00000000000..2efd283b32b --- /dev/null +++ b/drivers/media/video/tegra/ov14810.c | |||
@@ -0,0 +1,1390 @@ | |||
1 | /* | ||
2 | * ov14810.c - ov14810 sensor driver | ||
3 | * | ||
4 | * Copyright (c) 2011-2012, NVIDIA, All Rights Reserved. | ||
5 | * | ||
6 | * Contributors: | ||
7 | * Krupal Divvela <kdivvela@nvidia.com> | ||
8 | * | ||
9 | * This file is licensed under the terms of the GNU General Public License | ||
10 | * version 2. This program is licensed "as is" without any warranty of any | ||
11 | * kind, whether express or implied. | ||
12 | */ | ||
13 | |||
14 | #include <linux/delay.h> | ||
15 | #include <linux/fs.h> | ||
16 | #include <linux/i2c.h> | ||
17 | #include <linux/miscdevice.h> | ||
18 | #include <linux/slab.h> | ||
19 | #include <linux/uaccess.h> | ||
20 | #include <media/ov14810.h> | ||
21 | #include <linux/module.h> | ||
22 | #include <linux/moduleparam.h> | ||
23 | |||
24 | |||
25 | #define OV14810_I2C_WRITE8(ADDR, OFFSET, VAL) do { \ | ||
26 | if (0 != ov14810_write8(ADDR, OFFSET, VAL)) \ | ||
27 | return 1; \ | ||
28 | } while(0) | ||
29 | |||
30 | #define OV14810_FRAME_LENGTH_REG_ADDR0 0x380e | ||
31 | #define OV14810_FRAME_LENGTH_REG_ADDR1 0x380f | ||
32 | |||
33 | #define OV14810_COARSE_TIME_REG_ADDR0 0x3500 | ||
34 | #define OV14810_COARSE_TIME_REG_ADDR1 0x3501 | ||
35 | #define OV14810_COARSE_TIME_REG_ADDR2 0x3502 | ||
36 | |||
37 | #define OV14810_GAIN_REG_ADDR0 0x350b | ||
38 | |||
39 | #define OV14810_GROUP_ACCESS_REG_ADDR 0x3212 | ||
40 | |||
41 | static u8 uCProgram[] = { | ||
42 | 0x02,0x03,0x6E,0x02,0x19,0x74,0xBB,0x01,0x06,0x89,0x82,0x8A,0x83,0xE0,0x22,0x50 | ||
43 | ,0x02,0xE7,0x22,0xBB,0xFE,0x02,0xE3,0x22,0x89,0x82,0x8A,0x83,0xE4,0x93,0x22,0xBB | ||
44 | ,0x01,0x0C,0xE5,0x82,0x29,0xF5,0x82,0xE5,0x83,0x3A,0xF5,0x83,0xE0,0x22,0x50,0x06 | ||
45 | ,0xE9,0x25,0x82,0xF8,0xE6,0x22,0xBB,0xFE,0x06,0xE9,0x25,0x82,0xF8,0xE2,0x22,0xE5 | ||
46 | ,0x82,0x29,0xF5,0x82,0xE5,0x83,0x3A,0xF5,0x83,0xE4,0x93,0x22,0xBB,0x01,0x06,0x89 | ||
47 | ,0x82,0x8A,0x83,0xF0,0x22,0x50,0x02,0xF7,0x22,0xBB,0xFE,0x01,0xF3,0x22,0xEF,0x8D | ||
48 | ,0xF0,0xA4,0xA8,0xF0,0xCF,0x8C,0xF0,0xA4,0x28,0xCE,0x8D,0xF0,0xA4,0x2E,0xFE,0x22 | ||
49 | ,0xBC,0x00,0x0B,0xBE,0x00,0x29,0xEF,0x8D,0xF0,0x84,0xFF,0xAD,0xF0,0x22,0xE4,0xCC | ||
50 | ,0xF8,0x75,0xF0,0x08,0xEF,0x2F,0xFF,0xEE,0x33,0xFE,0xEC,0x33,0xFC,0xEE,0x9D,0xEC | ||
51 | ,0x98,0x40,0x05,0xFC,0xEE,0x9D,0xFE,0x0F,0xD5,0xF0,0xE9,0xE4,0xCE,0xFD,0x22,0xED | ||
52 | ,0xF8,0xF5,0xF0,0xEE,0x84,0x20,0xD2,0x1C,0xFE,0xAD,0xF0,0x75,0xF0,0x08,0xEF,0x2F | ||
53 | ,0xFF,0xED,0x33,0xFD,0x40,0x07,0x98,0x50,0x06,0xD5,0xF0,0xF2,0x22,0xC3,0x98,0xFD | ||
54 | ,0x0F,0xD5,0xF0,0xEA,0x22,0xC2,0xD5,0xEC,0x30,0xE7,0x09,0xB2,0xD5,0xE4,0xC3,0x9D | ||
55 | ,0xFD,0xE4,0x9C,0xFC,0xEE,0x30,0xE7,0x15,0xB2,0xD5,0xE4,0xC3,0x9F,0xFF,0xE4,0x9E | ||
56 | ,0xFE,0x12,0x00,0x70,0xC3,0xE4,0x9D,0xFD,0xE4,0x9C,0xFC,0x80,0x03,0x12,0x00,0x70 | ||
57 | ,0x30,0xD5,0x07,0xC3,0xE4,0x9F,0xFF,0xE4,0x9E,0xFE,0x22,0xC5,0xF0,0xF8,0xA3,0xE0 | ||
58 | ,0x28,0xF0,0xC5,0xF0,0xF8,0xE5,0x82,0x15,0x82,0x70,0x02,0x15,0x83,0xE0,0x38,0xF0 | ||
59 | ,0x22,0xBB,0x01,0x0A,0x89,0x82,0x8A,0x83,0xE0,0xF5,0xF0,0xA3,0xE0,0x22,0x50,0x06 | ||
60 | ,0x87,0xF0,0x09,0xE7,0x19,0x22,0xBB,0xFE,0x07,0xE3,0xF5,0xF0,0x09,0xE3,0x19,0x22 | ||
61 | ,0x89,0x82,0x8A,0x83,0xE4,0x93,0xF5,0xF0,0x74,0x01,0x93,0x22,0xBB,0x01,0x10,0xE5 | ||
62 | ,0x82,0x29,0xF5,0x82,0xE5,0x83,0x3A,0xF5,0x83,0xE0,0xF5,0xF0,0xA3,0xE0,0x22,0x50 | ||
63 | ,0x09,0xE9,0x25,0x82,0xF8,0x86,0xF0,0x08,0xE6,0x22,0xBB,0xFE,0x0A,0xE9,0x25,0x82 | ||
64 | ,0xF8,0xE2,0xF5,0xF0,0x08,0xE2,0x22,0xE5,0x83,0x2A,0xF5,0x83,0xE9,0x93,0xF5,0xF0 | ||
65 | ,0xA3,0xE9,0x93,0x22,0xE8,0x8F,0xF0,0xA4,0xCC,0x8B,0xF0,0xA4,0x2C,0xFC,0xE9,0x8E | ||
66 | ,0xF0,0xA4,0x2C,0xFC,0x8A,0xF0,0xED,0xA4,0x2C,0xFC,0xEA,0x8E,0xF0,0xA4,0xCD,0xA8 | ||
67 | ,0xF0,0x8B,0xF0,0xA4,0x2D,0xCC,0x38,0x25,0xF0,0xFD,0xE9,0x8F,0xF0,0xA4,0x2C,0xCD | ||
68 | ,0x35,0xF0,0xFC,0xEB,0x8E,0xF0,0xA4,0xFE,0xA9,0xF0,0xEB,0x8F,0xF0,0xA4,0xCF,0xC5 | ||
69 | ,0xF0,0x2E,0xCD,0x39,0xFE,0xE4,0x3C,0xFC,0xEA,0xA4,0x2D,0xCE,0x35,0xF0,0xFD,0xE4 | ||
70 | ,0x3C,0xFC,0x22,0x75,0xF0,0x08,0x75,0x82,0x00,0xEF,0x2F,0xFF,0xEE,0x33,0xFE,0xCD | ||
71 | ,0x33,0xCD,0xCC,0x33,0xCC,0xC5,0x82,0x33,0xC5,0x82,0x9B,0xED,0x9A,0xEC,0x99,0xE5 | ||
72 | ,0x82,0x98,0x40,0x0C,0xF5,0x82,0xEE,0x9B,0xFE,0xED,0x9A,0xFD,0xEC,0x99,0xFC,0x0F | ||
73 | ,0xD5,0xF0,0xD6,0xE4,0xCE,0xFB,0xE4,0xCD,0xFA,0xE4,0xCC,0xF9,0xA8,0x82,0x22,0xB8 | ||
74 | ,0x00,0xC1,0xB9,0x00,0x59,0xBA,0x00,0x2D,0xEC,0x8B,0xF0,0x84,0xCF,0xCE,0xCD,0xFC | ||
75 | ,0xE5,0xF0,0xCB,0xF9,0x78,0x18,0xEF,0x2F,0xFF,0xEE,0x33,0xFE,0xED,0x33,0xFD,0xEC | ||
76 | ,0x33,0xFC,0xEB,0x33,0xFB,0x10,0xD7,0x03,0x99,0x40,0x04,0xEB,0x99,0xFB,0x0F,0xD8 | ||
77 | ,0xE5,0xE4,0xF9,0xFA,0x22,0x78,0x18,0xEF,0x2F,0xFF,0xEE,0x33,0xFE,0xED,0x33,0xFD | ||
78 | ,0xEC,0x33,0xFC,0xC9,0x33,0xC9,0x10,0xD7,0x05,0x9B,0xE9,0x9A,0x40,0x07,0xEC,0x9B | ||
79 | ,0xFC,0xE9,0x9A,0xF9,0x0F,0xD8,0xE0,0xE4,0xC9,0xFA,0xE4,0xCC,0xFB,0x22,0x75,0xF0 | ||
80 | ,0x10,0xEF,0x2F,0xFF,0xEE,0x33,0xFE,0xED,0x33,0xFD,0xCC,0x33,0xCC,0xC8,0x33,0xC8 | ||
81 | ,0x10,0xD7,0x07,0x9B,0xEC,0x9A,0xE8,0x99,0x40,0x0A,0xED,0x9B,0xFD,0xEC,0x9A,0xFC | ||
82 | ,0xE8,0x99,0xF8,0x0F,0xD5,0xF0,0xDA,0xE4,0xCD,0xFB,0xE4,0xCC,0xFA,0xE4,0xC8,0xF9 | ||
83 | ,0x22,0xEB,0x9F,0xF5,0xF0,0xEA,0x9E,0x42,0xF0,0xE9,0x9D,0x42,0xF0,0xE8,0x9C,0x45 | ||
84 | ,0xF0,0x22,0xE8,0x60,0x0F,0xEC,0xC3,0x13,0xFC,0xED,0x13,0xFD,0xEE,0x13,0xFE,0xEF | ||
85 | ,0x13,0xFF,0xD8,0xF1,0x22,0xE8,0x60,0x0F,0xEF,0xC3,0x33,0xFF,0xEE,0x33,0xFE,0xED | ||
86 | ,0x33,0xFD,0xEC,0x33,0xFC,0xD8,0xF1,0x22,0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,0xE0,0xFE | ||
87 | ,0xA3,0xE0,0xFF,0x22,0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,0xFB,0x22 | ||
88 | ,0xEC,0xF0,0xA3,0xED,0xF0,0xA3,0xEE,0xF0,0xA3,0xEF,0xF0,0x22,0xE0,0xFB,0xA3,0xE0 | ||
89 | ,0xFA,0xA3,0xE0,0xF9,0x22,0xF8,0xE0,0xFB,0xA3,0xA3,0xE0,0xF9,0x25,0xF0,0xF0,0xE5 | ||
90 | ,0x82,0x15,0x82,0x70,0x02,0x15,0x83,0xE0,0xFA,0x38,0xF0,0x22,0xEB,0xF0,0xA3,0xEA | ||
91 | ,0xF0,0xA3,0xE9,0xF0,0x22,0xD0,0x83,0xD0,0x82,0xF8,0xE4,0x93,0x70,0x12,0x74,0x01 | ||
92 | ,0x93,0x70,0x0D,0xA3,0xA3,0x93,0xF8,0x74,0x01,0x93,0xF5,0x82,0x88,0x83,0xE4,0x73 | ||
93 | ,0x74,0x02,0x93,0x68,0x60,0xEF,0xA3,0xA3,0xA3,0x80,0xDF,0x8A,0x83,0x89,0x82,0xE4 | ||
94 | ,0x73,0xEC,0x8E,0xF0,0xA4,0xCC,0xC5,0xF0,0xCC,0xCD,0xF8,0xEF,0xA4,0xCE,0xC5,0xF0 | ||
95 | ,0x2D,0xFD,0xE4,0x3C,0xFC,0xE8,0xA4,0x2E,0xC8,0xC5,0xF0,0x3D,0xFD,0xE4,0x3C,0xFC | ||
96 | ,0xEF,0xA4,0xFF,0xE5,0xF0,0x28,0xFE,0xE4,0x3D,0xFD,0xE4,0x3C,0xFC,0x22,0x78,0x7F | ||
97 | ,0xE4,0xF6,0xD8,0xFD,0x75,0x81,0x7F,0x02,0x03,0xB5,0x02,0x17,0x7F,0xE4,0x93,0xA3 | ||
98 | ,0xF8,0xE4,0x93,0xA3,0x40,0x03,0xF6,0x80,0x01,0xF2,0x08,0xDF,0xF4,0x80,0x29,0xE4 | ||
99 | ,0x93,0xA3,0xF8,0x54,0x07,0x24,0x0C,0xC8,0xC3,0x33,0xC4,0x54,0x0F,0x44,0x20,0xC8 | ||
100 | ,0x83,0x40,0x04,0xF4,0x56,0x80,0x01,0x46,0xF6,0xDF,0xE4,0x80,0x0B,0x01,0x02,0x04 | ||
101 | ,0x08,0x10,0x20,0x40,0x80,0x90,0x03,0xFA,0xE4,0x7E,0x01,0x93,0x60,0xBC,0xA3,0xFF | ||
102 | ,0x54,0x3F,0x30,0xE5,0x09,0x54,0x1F,0xFE,0xE4,0x93,0xA3,0x60,0x01,0x0E,0xCF,0x54 | ||
103 | ,0xC0,0x25,0xE0,0x60,0xA8,0x40,0xB8,0xE4,0x93,0xA3,0xFA,0xE4,0x93,0xA3,0xF8,0xE4 | ||
104 | ,0x93,0xA3,0xC8,0xC5,0x82,0xC8,0xCA,0xC5,0x83,0xCA,0xF0,0xA3,0xC8,0xC5,0x82,0xC8 | ||
105 | ,0xCA,0xC5,0x83,0xCA,0xDF,0xE9,0xDE,0xE7,0x80,0xBE,0x41,0x1B,0x5F,0x00,0x60,0x26 | ||
106 | ,0x1B,0x23,0x07,0x83,0x07,0xE6,0x08,0x0D,0x1F,0x5D,0x1F,0x98,0x07,0x5F,0x04,0x73 | ||
107 | ,0xFC,0x18,0x03,0xE8,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x01,0x00,0x0B | ||
108 | ,0x00,0x01,0x00,0x04,0x00,0xA0,0x00,0x64,0xC1,0x45,0xC1,0x46,0xC1,0x48,0xC1,0x47 | ||
109 | ,0x00,0xE4,0xFD,0xFC,0xC2,0x8D,0xC2,0xA9,0xD2,0x8C,0xED,0x6F,0x70,0x02,0xEC,0x6E | ||
110 | ,0x60,0x0C,0x30,0x8D,0xFD,0x0D,0xBD,0x00,0x01,0x0C,0xC2,0x8D,0x80,0xEC,0xC2,0x8C | ||
111 | ,0x22,0xC2,0x8C,0xC2,0xA9,0x53,0x89,0xF0,0x43,0x89,0x02,0x75,0x8C,0x9C,0x75,0x8A | ||
112 | ,0x9C,0xC2,0x8D,0x22,0xD0,0xE0,0xD0,0xE0,0xE4,0xC0,0xE0,0xC0,0xE0,0x32,0x22,0x02 | ||
113 | ,0xFF,0xFC,0x22,0x42,0x30,0x00,0x47,0x30,0x03,0x47,0x30,0x0C,0x41,0x30,0x18,0x42 | ||
114 | ,0x30,0x1B,0x41,0x30,0x1E,0x41,0x30,0x20,0x41,0x31,0x06,0x41,0x35,0x03,0x42,0x36 | ||
115 | ,0x00,0x42,0x36,0x03,0x42,0x36,0x0A,0x41,0x36,0x0F,0x41,0x36,0x11,0x41,0x36,0x13 | ||
116 | ,0x41,0x36,0x15,0x44,0x37,0x02,0x43,0x37,0x07,0x41,0x37,0x0E,0x42,0x37,0x10,0x42 | ||
117 | ,0x37,0x14,0x43,0x37,0x17,0x44,0x37,0x1B,0x45,0x37,0x22,0x44,0x38,0x08,0x41,0x38 | ||
118 | ,0x19,0x41,0x3B,0x09,0x41,0x3C,0x01,0x41,0x40,0x00,0x44,0x40,0x02,0x41,0x40,0x09 | ||
119 | ,0x41,0x40,0x0C,0x41,0x40,0x4F,0x43,0x43,0x00,0x48,0x47,0x00,0x41,0x47,0x09,0x42 | ||
120 | ,0x47,0x0B,0x42,0x48,0x00,0x41,0x48,0x03,0x41,0x48,0x06,0x41,0x48,0x37,0x41,0x48 | ||
121 | ,0x42,0x41,0x48,0x4A,0x42,0x50,0x00,0x41,0x50,0x1F,0x41,0x50,0x25,0x42,0x50,0x3B | ||
122 | ,0x41,0x50,0x41,0x41,0x50,0x43,0x41,0x5B,0x01,0x41,0x5B,0x03,0x42,0x38,0x2C,0x41 | ||
123 | ,0x01,0x00,0x41,0x32,0x12,0x41,0x30,0x13,0x41,0x36,0x02,0x41,0x36,0x05,0x42,0x36 | ||
124 | ,0x0C,0x41,0x36,0x14,0x44,0x37,0x0A,0x41,0x37,0x0F,0x41,0x37,0x13,0x41,0x37,0x16 | ||
125 | ,0x41,0x37,0x21,0x42,0x37,0x27,0x45,0x38,0x03,0x46,0x38,0x0C,0x42,0x38,0x17,0x46 | ||
126 | ,0x38,0x1C,0x42,0x38,0x2C,0x41,0x40,0x01,0x42,0x40,0x50,0x41,0x40,0x53,0x41,0x50 | ||
127 | ,0x02,0x41,0x50,0x3D,0x41,0x50,0x42,0x41,0x50,0x47,0x41,0x59,0x01,0xEF,0xFF,0xFF | ||
128 | ,0x41,0x32,0x12,0x41,0x32,0x12,0x84,0xEE,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x09 | ||
129 | ,0x00,0xA7,0xA0,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x04,0xE0,0xF8 | ||
130 | ,0xF0,0x01,0x05,0x03,0x2D,0x1F,0x20,0x80,0x2E,0x00,0x24,0x6C,0x84,0x13,0x20,0x3D | ||
131 | ,0x28,0xD1,0x73,0x01,0x00,0x04,0x40,0x16,0x5F,0x58,0x80,0x11,0x11,0xA0,0x46,0x40 | ||
132 | ,0x2C,0x1A,0x30,0x2E,0x2E,0x70,0x00,0x40,0x00,0xF0,0x80,0x0A,0x80,0x29,0xC5,0x08 | ||
133 | ,0x02,0x10,0x40,0x00,0xFF,0xFF,0x00,0xF0,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00 | ||
134 | ,0x00,0x00,0x00,0x04,0x0F,0x50,0x80,0x1B,0x01,0x00,0x5F,0x4E,0x00,0x10,0x01,0x10 | ||
135 | ,0x0E,0x08,0x03,0x00,0x02,0x02,0x00,0x00,0x1F,0x53,0x11,0x42,0x13,0x0F,0x83,0x00 | ||
136 | ,0x04,0x81,0x00,0x57,0xB6,0x08,0x66,0x02,0x07,0x02,0x88,0x01,0xE6,0x0F,0xA0,0x01 | ||
137 | ,0xF4,0x22,0x02,0x24,0x4A,0x32,0xAC,0x07,0xA4,0x03,0xA0,0x10,0x10,0x00,0xC0,0x00 | ||
138 | ,0xA1,0x00,0x00,0x21,0x00,0x00,0xFF,0xFF,0x10,0xA0,0x02,0x88,0x01,0xE6,0xFF,0xFF | ||
139 | ,0xFF,0xFF,0xFF,0x00,0x00,0x09,0x00,0xA7,0xA0,0x08,0x00,0x00,0x00,0x00,0x00,0x00 | ||
140 | ,0x00,0x00,0x40,0x04,0xE0,0xF8,0xF0,0x01,0x05,0x03,0x2D,0x1F,0x20,0x80,0x2E,0x00 | ||
141 | ,0x24,0x6C,0x84,0x13,0x20,0x3D,0x28,0xD1,0x73,0x01,0x00,0x04,0x40,0x16,0x5F,0x58 | ||
142 | ,0x80,0x11,0x11,0xA0,0x46,0x40,0x2C,0x1A,0x30,0x2E,0x2E,0x70,0x00,0x40,0x00,0xF0 | ||
143 | ,0x80,0x0A,0x80,0x29,0xC5,0x08,0x02,0x10,0x40,0x00,0xFF,0xFF,0x00,0xF0,0x04,0x01 | ||
144 | ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x0F,0x50,0x80,0x1B,0x01,0x00 | ||
145 | ,0x5F,0x4E,0x00,0x10,0x01,0x10,0x0E,0x08,0x03,0x00,0x02,0x02,0x00,0x00,0x1F,0x42 | ||
146 | ,0x11,0x42,0x13,0x30,0x80,0x00,0x84,0x01,0x61,0xF6,0x17,0x08,0x66,0x0C,0x0B,0x11 | ||
147 | ,0x40,0x0C,0xF0,0x1F,0x00,0x0D,0x08,0x44,0x96,0x24,0x40,0x30,0x0C,0x0C,0xFC,0x00 | ||
148 | ,0x08,0x04,0x04,0x02,0xC0,0x00,0xA1,0x00,0x00,0x21,0x00,0x00,0xFF,0xFF,0x10,0xA0 | ||
149 | ,0x11,0x40,0x0C,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x09,0x00,0xA7,0xA0,0x08 | ||
150 | ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x04,0xE0,0xF8,0xF0,0x01,0x05,0x03 | ||
151 | ,0x2D,0x1F,0x20,0x80,0x2E,0x00,0x24,0x6C,0x84,0x13,0x20,0x3D,0x28,0xD1,0x73,0x01 | ||
152 | ,0x00,0x04,0x40,0x16,0x5F,0x58,0x80,0x11,0x11,0xA0,0x46,0x40,0x2C,0x1A,0x30,0x2E | ||
153 | ,0x2E,0x70,0x00,0x40,0x00,0xF0,0x80,0x0A,0x80,0x29,0xC5,0x08,0x02,0x10,0x40,0x00 | ||
154 | ,0xFF,0xFF,0x00,0xF0,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04 | ||
155 | ,0x0F,0x50,0x80,0x1B,0x01,0x00,0x5F,0x4E,0x00,0x10,0x01,0x10,0x0E,0x08,0x03,0x00 | ||
156 | ,0x02,0x02,0x00,0x00,0x1F,0x42,0x11,0x42,0x13,0x30,0x80,0x00,0x84,0x01,0x61,0xF6 | ||
157 | ,0x17,0x08,0x66,0x0C,0x0B,0x02,0x88,0x01,0xE6,0x0A,0x40,0x01,0xFC,0x44,0x96,0x24 | ||
158 | ,0x40,0x35,0x85,0x01,0xF2,0x07,0x6C,0x04,0x04,0x02,0xC0,0x00,0xA1,0x00,0x00,0x31 | ||
159 | ,0x00,0x00,0xFF,0xFF,0x10,0xA0,0x02,0x88,0x01,0xE6,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
160 | ,0x00,0x05,0x6D,0x07,0x18,0x06,0x13,0xFF,0x05,0x06,0xB9,0xFF,0xFF,0xFF,0xFF,0xFF | ||
161 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
162 | ,0xFF,0xFF,0xFF,0x01,0x0D,0x4C,0x02,0x08,0xB9,0x03,0x0F,0xF5,0x05,0x0D,0xC7,0x0A | ||
163 | ,0x14,0x6D,0x0B,0x14,0xB6,0x0C,0x0F,0xD2,0x0D,0x14,0xED,0x0F,0x15,0x59,0x10,0x15 | ||
164 | ,0x5D,0x14,0x15,0x70,0x18,0x11,0xAF,0x19,0x12,0x79,0x1F,0x15,0x61,0x20,0x17,0x29 | ||
165 | ,0x22,0x14,0x06,0x23,0x14,0x2D,0x29,0x18,0xAF,0x2A,0x10,0x9F,0x39,0x17,0x9F,0x3B | ||
166 | ,0x0E,0xA6,0x3C,0x17,0xEB,0x4A,0x18,0x92,0x4B,0x14,0x88,0x50,0x17,0x42,0x57,0x15 | ||
167 | ,0x61,0x59,0x11,0x3D,0x60,0x17,0x65,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
168 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x22,0xA2,0xC1,0xCC,0xC1,0xCB,0x25,0x11,0x26,0x88 | ||
169 | ,0x60,0x00,0x64,0x45,0x30,0x03,0x41,0x01,0x00,0x60,0x00,0x64,0x41,0x01,0x00,0xEF | ||
170 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0B,0x02,0xF7 | ||
171 | ,0x00,0x00,0x00,0x00,0x00,0x04,0x14,0x28,0x36,0x64,0x04,0x00,0x09,0x00,0x9D,0xC3 | ||
172 | ,0x0D,0x01,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
173 | ,0x90,0x1B,0x23,0x12,0x18,0x70,0x90,0x1B,0x68,0x12,0x03,0x0C,0x90,0x1B,0x68,0xF1 | ||
174 | ,0xE3,0xFF,0xF4,0x60,0x34,0xEF,0x14,0xB5,0xC5,0x23,0x75,0xC5,0xFE,0xE4,0xFD,0x7F | ||
175 | ,0x8E,0x11,0x89,0x90,0x1B,0x68,0x12,0x02,0xEC,0x90,0x00,0x01,0x12,0x01,0x3C,0xAA | ||
176 | ,0xF0,0xF9,0x12,0x03,0x3B,0x7D,0x04,0x7F,0x8E,0x11,0x89,0x80,0x0F,0x90,0x1B,0x69 | ||
177 | ,0xE4,0x75,0xF0,0x03,0x12,0x00,0xFB,0x80,0xC3,0x75,0xC1,0x06,0x75,0xC5,0xFF,0x22 | ||
178 | ,0xFD,0x7F,0x20,0x11,0x89,0xE4,0xFD,0x7F,0x12,0x8F,0xFA,0x8D,0xFB,0xE4,0xF5,0xF8 | ||
179 | ,0x90,0x1B,0x35,0xE0,0xFE,0xA3,0xE0,0xFF,0x43,0xF8,0x01,0xEF,0x4E,0x70,0x08,0xE5 | ||
180 | ,0xF9,0x64,0x0F,0x60,0x13,0x80,0xF8,0xE5,0xF9,0x64,0x0F,0x60,0x0B,0xEF,0x1F,0xAC | ||
181 | ,0x06,0x70,0x01,0x1E,0x4C,0x70,0xF0,0x22,0x22,0xAF,0xC1,0xEF,0x14,0x60,0x15,0x24 | ||
182 | ,0xFE,0x60,0x3E,0x24,0x03,0x70,0x63,0xE5,0xC2,0xB4,0x01,0x06,0x12,0x17,0x92,0x02 | ||
183 | ,0x04,0x64,0x80,0x56,0xE5,0xC2,0x64,0x01,0x70,0x25,0x31,0x35,0xE4,0xFD,0x7F,0x20 | ||
184 | ,0x11,0x89,0x7D,0x03,0x7F,0x12,0x11,0x89,0x7D,0x07,0x7F,0x14,0x11,0x89,0x7D,0x03 | ||
185 | ,0x7F,0x13,0x11,0x89,0x75,0xC5,0xFF,0xE4,0xF5,0xC1,0xFD,0x7F,0x18,0x80,0x8A,0x80 | ||
186 | ,0x29,0xE5,0xC2,0x70,0x12,0x31,0x35,0x7F,0x20,0xB1,0x22,0x90,0x1B,0x5F,0xEF,0xF0 | ||
187 | ,0xE4,0x11,0x80,0x7D,0x03,0x80,0x0D,0xE5,0xC2,0xB4,0x01,0x0C,0x90,0x1B,0x5F,0xE0 | ||
188 | ,0x11,0x80,0xE4,0xFD,0x7F,0x13,0xA1,0xAD,0x80,0x00,0x75,0xC1,0x01,0x22,0xE4,0xFD | ||
189 | ,0xFF,0x7E,0x01,0x80,0x0E,0x31,0x2E,0x7F,0x0A,0x7E,0x00,0x02,0x04,0x31,0xFD,0x7F | ||
190 | ,0x02,0x7E,0x35,0xAB,0x07,0xAA,0x06,0xEA,0xF5,0xFA,0xEB,0xF5,0xFB,0x8D,0xFC,0x75 | ||
191 | ,0xF8,0x10,0x01,0x90,0xE4,0xFD,0x7F,0x12,0x7E,0x32,0x31,0x43,0xAD,0x43,0xAC,0x42 | ||
192 | ,0x7F,0x00,0x7E,0x35,0x31,0x84,0xE5,0x45,0x31,0x3E,0xAD,0x49,0xAC,0x48,0x7F,0x0A | ||
193 | ,0x7E,0x35,0x31,0x84,0x7D,0x10,0x7F,0x12,0x7E,0x32,0x31,0x43,0x7D,0xA0,0x7F,0x12 | ||
194 | ,0x7E,0x32,0x80,0xBF,0x8E,0x31,0x8F,0x32,0x8C,0x33,0x8D,0x34,0xE5,0x33,0xFD,0x31 | ||
195 | ,0x43,0xE5,0x32,0x24,0x01,0xFF,0xE4,0x35,0x31,0xFE,0xAD,0x34,0x80,0xA5,0x8E,0x2F | ||
196 | ,0x8F,0x30,0x90,0x1B,0x10,0xE0,0xFF,0x90,0x1B,0x0F,0xE0,0xFD,0x12,0x18,0x35,0xAA | ||
197 | ,0x06,0xA9,0x07,0x7B,0xFF,0x90,0x1B,0x4E,0x12,0x03,0x0C,0x90,0x00,0x80,0x12,0x00 | ||
198 | ,0x1F,0xFE,0x90,0x00,0x81,0x12,0x00,0x1F,0x7C,0x00,0x90,0x1B,0x5B,0xB1,0x18,0x90 | ||
199 | ,0x00,0x82,0x12,0x00,0x1F,0xFE,0x90,0x00,0x83,0x12,0x00,0x1F,0x90,0x1B,0x5D,0xB1 | ||
200 | ,0x18,0xB1,0x05,0x7C,0x41,0x7D,0x1A,0x12,0x03,0x41,0x7B,0x00,0x7A,0x71,0x79,0x02 | ||
201 | ,0x78,0x00,0x12,0x01,0xFF,0x90,0x1B,0x51,0xEE,0xF0,0xA3,0xEF,0xF0,0xAE,0x2F,0xAF | ||
202 | ,0x30,0x7C,0x27,0x7D,0x10,0x12,0x03,0x41,0xC0,0x06,0xC0,0x07,0x90,0x1B,0x51,0xE0 | ||
203 | ,0xFE,0xA3,0xE0,0xFB,0xAA,0x06,0xE4,0xF9,0xF8,0xD0,0x07,0xD0,0x06,0x12,0x01,0xFF | ||
204 | ,0x90,0x1B,0x53,0x12,0x02,0xE0,0xB1,0x05,0xE4,0xFC,0xFD,0x90,0x1B,0x53,0x12,0x02 | ||
205 | ,0xD4,0x12,0x01,0x74,0xE4,0x7B,0x20,0xFA,0xF9,0xF8,0x12,0x01,0x74,0xE4,0x7B,0xE0 | ||
206 | ,0x7A,0x2E,0xF9,0xF8,0x12,0x01,0xFF,0x90,0x1B,0x57,0x12,0x02,0xE0,0x90,0x1B,0x57 | ||
207 | ,0x12,0x02,0xC8,0x78,0x08,0x12,0x02,0xA2,0x90,0x1B,0x11,0xEE,0xF0,0xA3,0xEF,0xF0 | ||
208 | ,0x90,0x1B,0x57,0x12,0x02,0xC8,0xE4,0x90,0x1B,0x13,0xEF,0xF0,0x7F,0x18,0x7E,0x38 | ||
209 | ,0xB1,0x3A,0xEF,0x30,0xE0,0x0D,0x51,0xD8,0x78,0x01,0x12,0x02,0xA2,0x90,0x1B,0x53 | ||
210 | ,0x12,0x02,0xE0,0x51,0xD8,0xEF,0x54,0xF0,0xFF,0xE4,0xF5,0x44,0x8F,0x45,0x51,0xD8 | ||
211 | ,0x78,0x08,0x12,0x02,0xA2,0xE4,0x8E,0x42,0x8F,0x43,0x51,0xD8,0x78,0x04,0x12,0x02 | ||
212 | ,0xA2,0xF1,0x35,0x90,0x1B,0x5E,0xE0,0x24,0xF8,0xFF,0x90,0x1B,0x5D,0xE0,0x34,0xFF | ||
213 | ,0xFE,0xE4,0xFC,0xFD,0xD3,0x12,0x02,0x91,0x40,0x10,0x51,0xD8,0x78,0x04,0x12,0x02 | ||
214 | ,0xA2,0xEF,0x24,0x08,0xFD,0xE4,0x3E,0xFC,0x80,0x08,0x90,0x1B,0x5D,0xE0,0xFC,0xA3 | ||
215 | ,0xE0,0xFD,0x7F,0x0E,0x7E,0x38,0x21,0x84,0x90,0x1B,0x53,0x02,0x02,0xC8,0x90,0x1B | ||
216 | ,0x2F,0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x1B,0x49,0x12,0x02,0xEC,0xAC,0x02,0xAD,0x01 | ||
217 | ,0x8E,0x33,0x8F,0x34,0x8C,0x35,0x8D,0x36,0x8F,0x82,0x8E,0x83,0xE4,0x93,0x91,0xFC | ||
218 | ,0x70,0x02,0x05,0x33,0x90,0x1B,0x4C,0xE0,0xFF,0xF4,0x70,0x02,0x81,0x19,0xEF,0x54 | ||
219 | ,0xE0,0xFB,0x70,0x24,0xE0,0x54,0x1F,0xB1,0x0E,0x05,0x34,0xE5,0x34,0x70,0x02,0x05 | ||
220 | ,0x33,0xF5,0x82,0x85,0x33,0x83,0xE4,0x93,0x90,0x1B,0x4C,0xF0,0x60,0xEB,0x05,0x34 | ||
221 | ,0xE5,0x34,0x70,0x02,0x05,0x33,0x80,0xCC,0x90,0x1B,0x4C,0xE0,0x54,0x1F,0xA3,0xF0 | ||
222 | ,0x90,0x1B,0x4C,0xEB,0xF0,0x64,0x20,0x60,0x0A,0xE0,0xFF,0x64,0x80,0x60,0x04,0xEF | ||
223 | ,0xB4,0xC0,0x15,0x91,0x2A,0xFF,0x90,0x1B,0x4E,0xE4,0xF0,0xA3,0xEF,0xF0,0x05,0x34 | ||
224 | ,0xE5,0x34,0x70,0x02,0x05,0x33,0x80,0x19,0x91,0x2A,0xFF,0x74,0x01,0x93,0x90,0x1B | ||
225 | ,0x4E,0xCF,0xF0,0xA3,0xEF,0xF0,0x74,0x02,0x25,0x34,0xF5,0x34,0xE4,0x35,0x33,0xF5 | ||
226 | ,0x33,0x90,0x1B,0x4C,0xE0,0xB4,0x60,0x08,0x91,0x33,0xFF,0x12,0x04,0x31,0x80,0x7F | ||
227 | ,0x90,0x1B,0x4C,0xE0,0xB4,0xE0,0x21,0xA3,0xE0,0xB4,0x02,0x16,0xAA,0x35,0xA9,0x36 | ||
228 | ,0x7B,0xFF,0x12,0x01,0x11,0x85,0xF0,0x35,0xF5,0x36,0x91,0x33,0x8E,0x33,0xF5,0x34 | ||
229 | ,0x80,0x5D,0x74,0x02,0xB1,0x0E,0x80,0x57,0x90,0x1B,0x4D,0xE0,0xD3,0x94,0x00,0x40 | ||
230 | ,0x4E,0x90,0x1B,0x4C,0xE0,0xB4,0xC0,0x07,0x91,0x1A,0x12,0x18,0x7A,0x80,0x26,0x90 | ||
231 | ,0x1B,0x4C,0xE0,0xB4,0x80,0x09,0x91,0x1A,0x7B,0x01,0x12,0x15,0x27,0x80,0x16,0x90 | ||
232 | ,0x1B,0x4C,0xE0,0x90,0x1B,0x4E,0xB4,0x40,0x08,0xE0,0xFE,0x91,0x1D,0x31,0x43,0x80 | ||
233 | ,0x04,0x91,0x1D,0x11,0x89,0x05,0x36,0xE5,0x36,0x70,0x02,0x05,0x35,0x90,0x1B,0x4E | ||
234 | ,0xE4,0x75,0xF0,0x01,0x12,0x00,0xFB,0x90,0x1B,0x4D,0xE0,0x14,0xF0,0x80,0xA9,0x91 | ||
235 | ,0x2A,0x91,0xFC,0x70,0x02,0x05,0x33,0x61,0x04,0x22,0x90,0x1B,0x4E,0xA3,0xE0,0xFF | ||
236 | ,0x85,0x36,0x82,0x85,0x35,0x83,0xE4,0x93,0xFD,0x22,0x85,0x34,0x82,0x85,0x33,0x83 | ||
237 | ,0xE4,0x93,0x22,0x90,0x1B,0x4E,0xE0,0xFE,0xA3,0xE0,0x22,0xE4,0x90,0x1B,0x4E,0xF0 | ||
238 | ,0xA3,0xF0,0x30,0x47,0x05,0x90,0x1B,0x01,0x80,0x03,0x90,0x1B,0x45,0xE0,0xFA,0xA3 | ||
239 | ,0xE0,0xFB,0x90,0x1B,0x44,0xE0,0x2B,0xFE,0x90,0x1B,0x43,0xE0,0x3A,0x90,0x1B,0x50 | ||
240 | ,0xF0,0xA3,0xCE,0xF0,0xA3,0xEA,0xF0,0xA3,0xEB,0xF0,0x30,0x48,0x6B,0xD2,0x45,0x30 | ||
241 | ,0x47,0x53,0x91,0xF3,0x90,0x1B,0x43,0xE0,0xFE,0xA3,0xE0,0xFF,0xD3,0x94,0x00,0xEE | ||
242 | ,0x94,0x00,0x40,0x0A,0xEF,0x24,0x06,0xFF,0xE4,0x3E,0xFE,0x12,0x04,0x31,0x91,0x33 | ||
243 | ,0xFF,0x90,0x1B,0x52,0xD1,0x25,0x40,0x54,0xB1,0x2C,0xC3,0x90,0x1B,0x38,0xE0,0x9F | ||
244 | ,0x90,0x1B,0x37,0xE0,0x9E,0x50,0x45,0x90,0x1B,0x39,0xA3,0xE0,0xFF,0xBF,0xFF,0x02 | ||
245 | ,0x80,0x22,0x90,0x1B,0x37,0xF1,0xBE,0x90,0x1B,0x4D,0xE0,0x9F,0xFF,0x90,0x1B,0x4C | ||
246 | ,0xE0,0x9E,0xFE,0x80,0x24,0x91,0xF3,0x91,0x33,0xFF,0xA3,0xD1,0x25,0x40,0x1D,0xB1 | ||
247 | ,0x2C,0x4E,0x60,0x18,0xF1,0xB2,0x80,0x11,0x91,0xF3,0x90,0x1B,0x50,0xE0,0xFE,0xA3 | ||
248 | ,0xE0,0xFF,0x7C,0x00,0x7D,0x05,0x12,0x00,0x5E,0x12,0x04,0x31,0x31,0x37,0x53,0xCB | ||
249 | ,0xFB,0x21,0x2E,0xF1,0xAA,0x30,0x48,0x03,0x43,0xCB,0x04,0x22,0x90,0x1B,0x4C,0xF0 | ||
250 | ,0x05,0x34,0xE5,0x34,0x22,0x90,0x1B,0x5B,0xE0,0xFE,0xA3,0xE0,0xFF,0x22,0x25,0x36 | ||
251 | ,0xF5,0x36,0xE4,0x35,0x35,0xF5,0x35,0x22,0x24,0x00,0xFF,0xEC,0x3E,0xF0,0xA3,0xEF | ||
252 | ,0xF0,0x22,0x8F,0xFA,0x75,0xF8,0x02,0x11,0x90,0xAF,0xFB,0x22,0xED,0x9F,0xFF,0xEC | ||
253 | ,0x9E,0xFE,0x90,0x1B,0x4C,0xF0,0xA3,0xEF,0xF0,0x22,0xAD,0x07,0xAC,0x06,0xEC,0xF5 | ||
254 | ,0xFA,0xED,0xF5,0xFB,0x75,0xF8,0x12,0x11,0x90,0xAF,0xFB,0x22,0x12,0x04,0x51,0x90 | ||
255 | ,0x1B,0x25,0xF1,0xC5,0x90,0x1F,0xF8,0xE4,0x93,0xF4,0x70,0x4D,0x7F,0x05,0x7E,0x3D | ||
256 | ,0xB1,0x3A,0xEF,0x60,0x44,0x75,0x2F,0x3D,0x75,0x30,0x0E,0x75,0x31,0x1F,0x75,0x32 | ||
257 | ,0x83,0xE4,0x90,0x1B,0x49,0xF0,0xB1,0xB3,0x70,0x02,0x05,0x31,0x05,0x30,0xE5,0x30 | ||
258 | ,0x70,0x02,0x05,0x2F,0xD1,0x11,0x94,0x04,0x40,0xEC,0x75,0x31,0x1F,0x75,0x32,0xB8 | ||
259 | ,0xE4,0x90,0x1B,0x49,0xF0,0xB1,0xB3,0x70,0x02,0x05,0x31,0x05,0x30,0xE5,0x30,0x70 | ||
260 | ,0x02,0x05,0x2F,0xD1,0x11,0x94,0x1E,0x40,0xEC,0x7D,0x04,0x7F,0x8E,0x11,0x89,0xE4 | ||
261 | ,0xF5,0xC1,0x22,0xAF,0x30,0xAE,0x2F,0xB1,0x3A,0xEF,0xF4,0x85,0x32,0x82,0x85,0x31 | ||
262 | ,0x83,0xF0,0x05,0x32,0xE5,0x32,0x22,0x7F,0x03,0x7E,0x30,0xB1,0x3A,0x8F,0x2F,0x7F | ||
263 | ,0x06,0x7E,0x30,0xB1,0x3A,0x8F,0x30,0xAF,0xC1,0xEF,0x24,0xFC,0x60,0x12,0x24,0x02 | ||
264 | ,0x70,0x1C,0x53,0x2F,0xFC,0x43,0x2F,0x01,0x53,0x30,0xDF,0x43,0x30,0x20,0x80,0x09 | ||
265 | ,0x53,0x2F,0xFC,0x43,0x2F,0x02,0x53,0x30,0xDF,0xE4,0xF5,0xC1,0x80,0x03,0x75,0xC1 | ||
266 | ,0x01,0xAD,0x2F,0x7F,0x03,0x7E,0x30,0x31,0x43,0xAD,0x30,0x7F,0x06,0x7E,0x30,0x21 | ||
267 | ,0x43,0x90,0x1B,0x49,0xE0,0x04,0xF0,0xE0,0xC3,0x22,0x90,0x1B,0x41,0xE0,0xFE,0xA3 | ||
268 | ,0xE0,0xFF,0x90,0x1B,0x3F,0xE0,0xFC,0xA3,0xE0,0xFD,0xD3,0x9F,0xEC,0x9E,0x22,0x30 | ||
269 | ,0x47,0x22,0xD1,0x1A,0x40,0x11,0xED,0x9F,0xFF,0xEC,0x9E,0xFE,0x90,0x1B,0x02,0xE0 | ||
270 | ,0x90,0x1B,0x01,0xF1,0x15,0x80,0x30,0xF1,0x0C,0x90,0x1B,0x02,0xE0,0x2F,0xFF,0x90 | ||
271 | ,0x1B,0x01,0x80,0x23,0x30,0x48,0x27,0xD1,0x1A,0x40,0x11,0xED,0x9F,0xFF,0xEC,0x9E | ||
272 | ,0xFE,0x90,0x1B,0x46,0xE0,0x90,0x1B,0x45,0xF1,0x15,0x80,0x0B,0xF1,0x0C,0x90,0x1B | ||
273 | ,0x46,0xE0,0x2F,0xFF,0x90,0x1B,0x45,0xE0,0x3E,0x90,0x1B,0x4C,0x80,0x0B,0x90,0x1B | ||
274 | ,0x45,0xE0,0xFF,0xA3,0xE0,0x90,0x1B,0x4C,0xCF,0xF0,0xA3,0xEF,0xF0,0xF1,0xB2,0x31 | ||
275 | ,0x9E,0x30,0x47,0x05,0x90,0x1B,0x03,0x80,0x03,0x90,0x1B,0x47,0xE0,0xFE,0xA3,0xE0 | ||
276 | ,0xFF,0x12,0x15,0xB2,0x21,0x54,0x7D,0x01,0xAF,0xC1,0x12,0x18,0x35,0x12,0x19,0xB7 | ||
277 | ,0x70,0x06,0xE9,0xF4,0x70,0x02,0xEA,0xF4,0x70,0x04,0x75,0xC1,0x01,0x22,0xD2,0x46 | ||
278 | ,0x12,0x19,0x3B,0x90,0x1B,0x0F,0xE0,0x70,0x06,0x31,0x2E,0xF1,0x5C,0x51,0xDE,0x90 | ||
279 | ,0x1B,0x0F,0x74,0x01,0xF0,0xA3,0xE5,0xC1,0xF0,0x30,0x47,0x05,0x90,0x1B,0x01,0x80 | ||
280 | ,0x03,0x90,0x1B,0x45,0xE0,0xFF,0xA3,0xE0,0x90,0x1B,0x17,0xCF,0xF0,0xA3,0xEF,0xF0 | ||
281 | ,0xD1,0x2F,0xE4,0x90,0x1B,0x19,0xF0,0x90,0x1B,0x14,0xE0,0xFF,0xA3,0xE0,0x90,0x1B | ||
282 | ,0x1A,0xCF,0xF0,0xA3,0xEF,0xF0,0x91,0x3B,0xE4,0xF5,0xC1,0x22,0x90,0x1B,0x3D,0xE0 | ||
283 | ,0xFE,0xA3,0xE0,0xFF,0x22,0x2F,0xFF,0xE0,0x3E,0xFE,0x90,0x1B,0x3E,0xE0,0x2F,0xFF | ||
284 | ,0x90,0x1B,0x3D,0x22,0xE4,0x33,0x24,0x01,0xFF,0xE4,0x33,0xFE,0xE4,0x33,0xFD,0xE4 | ||
285 | ,0x33,0xFC,0x12,0x01,0x74,0xA8,0x04,0xA9,0x05,0xAA,0x06,0xAB,0x07,0x22,0xAB,0x07 | ||
286 | ,0xAA,0x06,0xB1,0x3A,0x90,0x1B,0x4C,0xEF,0xF0,0xEB,0x24,0x01,0xFF,0xE4,0x3A,0xFE | ||
287 | ,0xB1,0x3A,0xEF,0xFD,0x90,0x1B,0x4C,0xE0,0xFE,0xED,0xFF,0x22,0x7F,0x00,0x7E,0x35 | ||
288 | ,0xF1,0x3E,0x90,0x1B,0x1D,0xEE,0xF0,0xA3,0xEF,0xF0,0x7F,0x02,0x7E,0x35,0xB1,0x3A | ||
289 | ,0x90,0x1B,0x1F,0xE4,0xF0,0xA3,0xEF,0xF0,0x7F,0x0A,0x7E,0x35,0xF1,0x3E,0x90,0x1B | ||
290 | ,0x21,0xEE,0xF0,0xA3,0xEF,0xF0,0x22,0x90,0x1B,0x1D,0xE0,0xFC,0xA3,0xE0,0xFD,0x7F | ||
291 | ,0x00,0x7E,0x35,0x31,0x84,0x90,0x1B,0x1F,0xA3,0xE0,0x31,0x3E,0x90,0x1B,0x21,0xE0 | ||
292 | ,0xFC,0xA3,0xE0,0xFD,0x7F,0x0A,0x7E,0x35,0x21,0x84,0x7D,0x01,0x7F,0x00,0x7E,0x01 | ||
293 | ,0x21,0x43,0x90,0x1B,0x4C,0xE0,0xFE,0xA3,0xE0,0xFF,0x22,0x90,0x1B,0x3B,0xE0,0xFE | ||
294 | ,0xA3,0xE0,0xFF,0xC3,0x22,0xE0,0xFE,0xA3,0xE0,0xFF,0xA3,0xE0,0xFC,0xA3,0xE0,0xFD | ||
295 | ,0x41,0xF0,0xE5,0xC1,0xC3,0x94,0xC1,0x50,0x06,0xAD,0xC4,0xAF,0xC1,0xA1,0xAD,0x75 | ||
296 | ,0xC1,0x01,0x22,0x12,0x02,0xEC,0x02,0x00,0x06,0x7F,0x0A,0x7E,0x30,0xE1,0x3E,0x7F | ||
297 | ,0x2A,0x7E,0x30,0xA1,0x3A,0x90,0x1B,0x4B,0xE5,0xC1,0xF0,0xE4,0xF5,0xC1,0xE0,0x12 | ||
298 | ,0x03,0x15,0x10,0x21,0x00,0x10,0x2B,0x01,0x10,0x40,0x02,0x10,0x52,0x03,0x10,0x5C | ||
299 | ,0x04,0x10,0x63,0x05,0x10,0x6A,0x07,0x10,0x7B,0x08,0x10,0x7F,0x09,0x00,0x00,0x10 | ||
300 | ,0x88,0x75,0xC2,0x4B,0xE4,0xF5,0xC3,0x75,0xC4,0x01,0x22,0x12,0x0F,0xE9,0x11,0x8C | ||
301 | ,0x12,0x0F,0xEF,0x8F,0xC2,0x90,0x1B,0x49,0x11,0x98,0xF5,0xC3,0xED,0xF5,0xC4,0x22 | ||
302 | ,0x75,0xC2,0x08,0xE4,0xFF,0x12,0x0D,0x22,0x8F,0xC3,0x7F,0x01,0x12,0x0D,0x22,0x8F | ||
303 | ,0xC4,0x22,0xE4,0xF5,0xC2,0x75,0xC3,0x2C,0x75,0xC4,0x38,0x22,0x75,0xC2,0x07,0xE4 | ||
304 | ,0xF5,0xC3,0x22,0x75,0xC2,0x5D,0x75,0xC3,0xC0,0x22,0x7F,0x02,0x71,0x44,0x11,0x8C | ||
305 | ,0x90,0x1B,0x49,0x11,0x98,0xF5,0xC2,0xED,0xF5,0xC3,0x22,0x75,0xC2,0x0A,0x22,0x31 | ||
306 | ,0x36,0x8F,0xC2,0x31,0x29,0x8F,0xC3,0x22,0x75,0xC1,0x01,0x22,0x90,0x1B,0x49,0xEE | ||
307 | ,0xF0,0xA3,0xEF,0xF0,0x22,0x90,0x1B,0x11,0xE0,0xFC,0xA3,0xE0,0xFD,0xEC,0x22,0xE4 | ||
308 | ,0x90,0x1B,0x49,0xF0,0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,0xAF,0xC1,0xEF,0x12,0x03,0x15 | ||
309 | ,0x10,0xC9,0x00,0x10,0xD2,0x01,0x10,0xD7,0x05,0x10,0xDC,0x10,0x10,0xED,0x11,0x10 | ||
310 | ,0xF6,0x15,0x11,0x00,0x20,0x00,0x00,0x11,0x08,0x11,0x95,0x31,0x21,0x90,0x1B,0x13 | ||
311 | ,0x80,0x14,0x90,0x1B,0x14,0x80,0x19,0x90,0x1B,0x16,0x80,0x1D,0x90,0x1B,0x17,0x11 | ||
312 | ,0x98,0x31,0x21,0x90,0x1B,0x19,0xE0,0x90,0x1B,0x4C,0xF0,0x80,0x21,0x90,0x1B,0x1A | ||
313 | ,0x11,0x98,0x31,0x21,0x80,0x18,0x90,0x1B,0x1C,0xE0,0x90,0x1B,0x4A,0xF0,0x80,0x0E | ||
314 | ,0x90,0x1B,0x49,0x74,0x04,0xF0,0x80,0x06,0x90,0x1B,0x49,0x74,0x01,0xF0,0x90,0x1B | ||
315 | ,0x49,0xE0,0xF5,0xC1,0xA3,0xE0,0xF5,0xC2,0xA3,0xE0,0xF5,0xC3,0xA3,0xE0,0xF5,0xC4 | ||
316 | ,0x22,0x90,0x1B,0x4A,0xF0,0xED,0xA3,0xF0,0x22,0x7F,0x01,0x8F,0xFA,0x75,0xF8,0x22 | ||
317 | ,0x12,0x08,0x90,0xAF,0xFB,0x22,0xE4,0xFF,0x31,0x2B,0x7E,0x00,0x22,0xE4,0xF5,0x2F | ||
318 | ,0xAF,0xC1,0xEF,0x14,0x60,0x11,0x14,0x60,0x18,0x14,0x60,0x15,0x14,0x60,0x17,0x24 | ||
319 | ,0x04,0x70,0x1F,0x31,0x8B,0x80,0x1E,0x90,0x1B,0x64,0x11,0x98,0xFF,0x8F,0xC3,0x80 | ||
320 | ,0x0C,0x75,0x2F,0x04,0x80,0x0F,0x90,0x1B,0x66,0x11,0x98,0xF5,0xC3,0xED,0xF5,0xC4 | ||
321 | ,0x80,0x03,0x75,0x2F,0x01,0x85,0x2F,0xC1,0x22,0xE0,0x54,0x1F,0xFC,0xA3,0xE0,0xFD | ||
322 | ,0x7F,0x50,0x51,0x62,0x7F,0xE8,0x7E,0x03,0x12,0x04,0x31,0x71,0x3C,0xC3,0x33,0xCE | ||
323 | ,0x33,0xCE,0xD8,0xF9,0xFF,0x7C,0x00,0x7D,0x08,0x12,0x00,0xC5,0x90,0x1B,0x64,0xEE | ||
324 | ,0xF0,0xA3,0xEF,0xF0,0x71,0xAA,0x90,0x1B,0x66,0xEE,0xF0,0xA3,0xEF,0xF0,0x22,0x90 | ||
325 | ,0x1B,0x2B,0xE0,0xFE,0xA3,0xE0,0x8E,0x2F,0xF5,0x30,0x8E,0x31,0xF5,0x32,0x90,0x1B | ||
326 | ,0x29,0x12,0x0F,0xC5,0xAF,0xC1,0xEF,0x24,0xFD,0x60,0x0B,0x04,0x70,0x10,0x74,0x36 | ||
327 | ,0x51,0x58,0x74,0x38,0x80,0x0E,0x74,0x3A,0x51,0x58,0x74,0x3C,0x80,0x06,0x74,0x32 | ||
328 | ,0x51,0x58,0x74,0x34,0x25,0x32,0xF5,0x32,0xE4,0x35,0x31,0xF5,0x31,0xE5,0xC1,0x60 | ||
329 | ,0x3A,0x85,0x30,0x82,0x85,0x2F,0x83,0xE4,0x93,0xFE,0x05,0x30,0xE5,0x30,0x70,0x02 | ||
330 | ,0x05,0x2F,0xF5,0x82,0x85,0x2F,0x83,0xE4,0x93,0x90,0x1B,0x31,0x51,0x70,0x85,0x32 | ||
331 | ,0x82,0x85,0x31,0x83,0xE4,0x93,0xFE,0x05,0x32,0xE5,0x32,0x70,0x02,0x05,0x31,0xF5 | ||
332 | ,0x82,0x85,0x31,0x83,0xE4,0x93,0x90,0x1B,0x33,0x51,0x70,0x90,0x1B,0x31,0x31,0x79 | ||
333 | ,0x90,0x1B,0x33,0x31,0x79,0x90,0x1B,0x31,0xE0,0xF5,0x3E,0xA3,0xE0,0xF5,0x3F,0xA3 | ||
334 | ,0xE0,0xF5,0x40,0xA3,0xE0,0xF5,0x41,0xE4,0xF5,0x3A,0xF5,0x3B,0x75,0xC1,0x01,0x75 | ||
335 | ,0xC2,0x44,0x51,0x79,0xE4,0xF5,0xC1,0x22,0x25,0x30,0xF5,0x30,0xE4,0x35,0x2F,0xF5 | ||
336 | ,0x2F,0x22,0x8F,0xFA,0xED,0xF5,0xFB,0xEC,0xF5,0xFC,0x75,0xF8,0x04,0x02,0x08,0x90 | ||
337 | ,0xFD,0xED,0xFF,0xEE,0xF0,0xA3,0xEF,0xF0,0x22,0xE4,0xF5,0x33,0xAF,0xC1,0xEF,0xAD | ||
338 | ,0xC2,0xF5,0x3A,0xED,0xF5,0x3B,0xD3,0x94,0x00,0xE5,0x3A,0x94,0x02,0x40,0x09,0x75 | ||
339 | ,0x33,0x01,0x75,0x3A,0x02,0x75,0x3B,0x00,0xC3,0xE5,0x3A,0x94,0x00,0x50,0x08,0x75 | ||
340 | ,0x33,0x01,0xE4,0xF5,0x3A,0xF5,0x3B,0xAF,0x3B,0xAE,0x3A,0x71,0x6A,0x8E,0x3C,0x8F | ||
341 | ,0x3D,0x53,0xCB,0xF7,0xE5,0x3C,0x54,0x1F,0xFC,0xAD,0x3D,0x7F,0x50,0x51,0x62,0x75 | ||
342 | ,0x34,0x00,0x75,0x35,0xFA,0x7F,0x05,0x7E,0x00,0x12,0x04,0x31,0x85,0x3C,0x36,0x85 | ||
343 | ,0x3D,0x37,0x71,0x3C,0xC3,0x33,0xCE,0x33,0xCE,0xD8,0xF9,0x78,0x03,0xCE,0xA2,0xE7 | ||
344 | ,0x13,0xCE,0x13,0xD8,0xF8,0xFF,0xC3,0xE5,0x37,0x9F,0xF5,0x37,0xE5,0x36,0x9E,0xF5 | ||
345 | ,0x36,0xC3,0x64,0x80,0x94,0x80,0x50,0x0F,0xAE,0x36,0xAF,0x37,0x7C,0xFF,0x7D,0xFF | ||
346 | ,0x12,0x00,0x5E,0x8E,0x36,0x8F,0x37,0xE5,0x35,0x15,0x35,0x70,0x02,0x15,0x34,0xC3 | ||
347 | ,0xE5,0x37,0x94,0x14,0xE5,0x36,0x64,0x80,0x94,0x80,0x40,0x06,0xE5,0x35,0x45,0x34 | ||
348 | ,0x70,0xA3,0xE5,0x35,0x45,0x34,0x70,0x03,0x75,0x33,0x04,0x71,0x55,0xE4,0xF5,0xC1 | ||
349 | ,0x85,0x33,0xC2,0xE5,0x34,0xF5,0xC3,0xE5,0x35,0xF5,0xC4,0x22,0x7F,0x5A,0x71,0x44 | ||
350 | ,0xEF,0x78,0x03,0x22,0x8F,0xFA,0x75,0xF8,0x06,0x12,0x08,0x90,0xAF,0xFC,0xEF,0xFE | ||
351 | ,0xAD,0xFB,0xED,0xFF,0x22,0xE5,0x3C,0x54,0x1F,0xFE,0xE4,0x25,0x3D,0xFD,0xEE,0x34 | ||
352 | ,0x20,0xFC,0x7F,0x50,0x51,0x62,0x43,0xCB,0x08,0x22,0x8E,0x38,0x8F,0x39,0x71,0xFB | ||
353 | ,0x78,0x02,0x71,0xF2,0x12,0x0F,0x35,0xAE,0x38,0xAF,0x39,0xE4,0xFC,0xFD,0x12,0x01 | ||
354 | ,0x74,0x78,0x09,0x12,0x02,0xA2,0xAD,0x07,0xAC,0x06,0xE5,0x41,0xAE,0x40,0x78,0x02 | ||
355 | ,0xC3,0x33,0xCE,0x33,0xCE,0xD8,0xF9,0xC3,0x9D,0xFF,0xEE,0x9C,0xFE,0xEF,0x78,0x02 | ||
356 | ,0xCE,0xA2,0xE7,0x13,0xCE,0x13,0xD8,0xF8,0xFF,0x22,0xD3,0xEF,0x95,0x41,0xE5,0x40 | ||
357 | ,0x64,0x80,0xF8,0xEE,0x64,0x80,0x98,0x40,0x04,0xE4,0xFE,0xFF,0x22,0xC3,0xEF,0x95 | ||
358 | ,0x3F,0xE5,0x3E,0x64,0x80,0xF8,0xEE,0x64,0x80,0x98,0x50,0x05,0x7E,0x02,0x7F,0x00 | ||
359 | ,0x22,0xC3,0xE5,0x41,0x9F,0xFF,0xE5,0x40,0x9E,0x78,0x09,0x71,0xF2,0xC0,0x06,0xC0 | ||
360 | ,0x07,0x71,0xFB,0xAB,0x07,0xFA,0x33,0x95,0xE0,0xF9,0xF8,0xD0,0x07,0xD0,0x06,0x02 | ||
361 | ,0x01,0xFF,0xFE,0x33,0x95,0xE0,0xFD,0xFC,0x02,0x02,0xB5,0xC3,0xE5,0x41,0x95,0x3F | ||
362 | ,0xFF,0xE5,0x40,0x95,0x3E,0x22,0x91,0x55,0x4E,0x70,0x05,0x75,0xC1,0x01,0x80,0x05 | ||
363 | ,0x90,0x1B,0x45,0x91,0x21,0x11,0x95,0xF5,0xC2,0xED,0xF5,0xC3,0xA3,0xE0,0xF5,0xC4 | ||
364 | ,0x22,0xEE,0xF0,0xA3,0xEF,0xF0,0x12,0x0E,0x2F,0xE4,0xF5,0xC1,0x22,0x91,0x55,0xD3 | ||
365 | ,0x94,0x80,0xEE,0x94,0x0C,0x50,0x09,0xC3,0xEF,0x94,0x32,0xEE,0x94,0x00,0x50,0x05 | ||
366 | ,0x75,0xC1,0x01,0x80,0x05,0x90,0x1B,0x47,0x91,0x21,0x90,0x1B,0x14,0x11,0x98,0xF5 | ||
367 | ,0xC2,0xED,0xF5,0xC3,0x22,0xAF,0xC1,0xEF,0xFF,0xAD,0xC2,0xED,0x90,0x1B,0x49,0xCF | ||
368 | ,0xF0,0xA3,0xEF,0xF0,0x90,0x1B,0x49,0xE0,0xFE,0xA3,0xE0,0xFF,0x22,0x91,0x55,0xC3 | ||
369 | ,0x94,0xFF,0xEE,0x94,0x5F,0x50,0x0A,0xAD,0xC4,0x12,0x09,0x43,0xE4,0xF5,0xC1,0x80 | ||
370 | ,0x03,0x75,0xC1,0x01,0xE4,0xF5,0xC2,0x22,0x90,0x1B,0x49,0xE5,0xC2,0xF0,0xE4,0xA3 | ||
371 | ,0xF0,0x90,0x1B,0x49,0xE0,0xFF,0xC3,0x94,0xFF,0x50,0x0C,0x31,0x2B,0x90,0x1B,0x4A | ||
372 | ,0xEF,0xF0,0xE4,0xF5,0xC1,0x80,0x03,0x75,0xC1,0x01,0xE4,0xF5,0xC2,0xF5,0xC3,0x90 | ||
373 | ,0x1B,0x4A,0xE0,0xF5,0xC4,0x22,0xAF,0xC1,0xEF,0xFF,0xAD,0xC2,0xED,0x90,0x1B,0x49 | ||
374 | ,0xCF,0xF0,0xA3,0xEF,0xF0,0xE4,0xA3,0x91,0x63,0xC3,0x94,0xFF,0xEE,0x94,0x5F,0x50 | ||
375 | ,0x0D,0x12,0x0D,0x3A,0x90,0x1B,0x4B,0xEF,0xF0,0xE4,0xF5,0xC1,0x80,0x03,0x75,0xC1 | ||
376 | ,0x01,0xE4,0xF5,0xC2,0xF5,0xC3,0x90,0x1B,0x4B,0xE0,0xF5,0xC4,0x22,0xE4,0xFF,0xE5 | ||
377 | ,0xC1,0xC3,0x94,0xC1,0x50,0x0A,0xAF,0xC1,0x12,0x0D,0x22,0xE4,0xF5,0xC1,0x80,0x03 | ||
378 | ,0x75,0xC1,0x01,0x8F,0xC4,0xE4,0xF5,0xC3,0xF5,0xC2,0x22,0x8F,0x2F,0xAB,0x2F,0xAD | ||
379 | ,0xC3,0xAF,0xC2,0xB1,0x27,0x8F,0xC3,0x05,0xC2,0xAB,0x2F,0xAD,0xC4,0xAF,0xC2,0xB1 | ||
380 | ,0x27,0x8F,0xC4,0xE4,0xF5,0xC1,0x22,0x8D,0x37,0xAE,0x03,0xEF,0x7C,0x00,0x7B,0x01 | ||
381 | ,0x24,0x23,0xF9,0xEC,0x34,0x1B,0xFA,0x90,0x1B,0x50,0x12,0x03,0x0C,0xEE,0x60,0x11 | ||
382 | ,0xEF,0xC3,0x94,0x26,0x50,0x0B,0x90,0x1B,0x50,0x12,0x02,0xEC,0xE5,0x37,0x12,0x00 | ||
383 | ,0x4C,0x90,0x1B,0x50,0x12,0x0F,0xE3,0xFF,0x22,0xE4,0xFF,0x80,0xAE,0x7F,0x01,0x80 | ||
384 | ,0xAA,0xAD,0x3B,0xAC,0x3A,0xE4,0xF5,0xC1,0x8C,0xC3,0xAF,0x05,0xEF,0xF5,0xC4,0x22 | ||
385 | ,0xAF,0xC2,0x7E,0x00,0xEF,0x78,0x10,0xC3,0x33,0xCE,0x33,0xCE,0xD8,0xF9,0xFD,0xAC | ||
386 | ,0x06,0xAF,0xC1,0x7E,0x00,0xEF,0x78,0x18,0xC3,0x33,0xCE,0x33,0xCE,0xD8,0xF9,0xB1 | ||
387 | ,0xAA,0xAF,0xC3,0xEF,0x4C,0xFE,0xED,0xFF,0xAD,0xC4,0xEF,0x4D,0xFF,0xE4,0xFC,0xFD | ||
388 | ,0x90,0x1B,0x60,0x12,0x02,0xE0,0xE4,0xF5,0xC1,0x22,0xFF,0xEE,0x4C,0xFC,0xEF,0x4D | ||
389 | ,0xFD,0x22,0x8E,0x2F,0x8F,0x30,0xC3,0xE5,0x30,0x94,0x64,0xE5,0x2F,0x94,0x00,0x50 | ||
390 | ,0x0C,0xF1,0x20,0xC2,0x44,0xF1,0x17,0x7E,0x40,0x7D,0x06,0x80,0x6D,0xC3,0xE5,0x30 | ||
391 | ,0x94,0xC8,0xE5,0x2F,0x94,0x00,0x50,0x0A,0xF1,0x20,0xF1,0x11,0x7E,0x80,0x7D,0x0C | ||
392 | ,0x80,0x58,0xC3,0xE5,0x30,0x94,0x90,0xE5,0x2F,0x94,0x01,0x50,0x0F,0xC2,0x40,0xD2 | ||
393 | ,0x41,0xC2,0x42,0xC2,0x43,0xF1,0x11,0xFE,0x7D,0x19,0x80,0x3E,0xC3,0xE5,0x30,0x94 | ||
394 | ,0x20,0xE5,0x2F,0x94,0x03,0x50,0x0D,0xD2,0x40,0xC2,0x41,0xC2,0x42,0xF1,0x0F,0xFE | ||
395 | ,0x7D,0x32,0x80,0x26,0xC3,0xE5,0x30,0x94,0x40,0xE5,0x2F,0x94,0x06,0x50,0x09,0xC2 | ||
396 | ,0x40,0xF1,0x0B,0xFE,0x7D,0x64,0x80,0x12,0xC3,0xE5,0x30,0x94,0x80,0xE5,0x2F,0x94 | ||
397 | ,0x0C,0x50,0x0F,0xD2,0x40,0xF1,0x0B,0xFE,0x7D,0xC8,0xFC,0x12,0x01,0xFF,0x8E,0x31 | ||
398 | ,0x8F,0x32,0xC3,0xE4,0x95,0x32,0xF5,0x34,0x74,0x20,0x95,0x31,0xF5,0x33,0xA2,0x41 | ||
399 | ,0xE4,0x33,0x24,0x01,0xFB,0xE4,0x33,0xFA,0xE4,0x33,0xF9,0xE4,0x33,0xF8,0xA2,0x40 | ||
400 | ,0x12,0x0F,0x24,0xA2,0x42,0x12,0x0F,0x24,0xA2,0x43,0x12,0x0F,0x24,0xA2,0x44,0xE4 | ||
401 | ,0x33,0x24,0x01,0xFF,0xE4,0x33,0xFE,0xE4,0x33,0xFD,0xE4,0x33,0xFC,0x12,0x01,0x74 | ||
402 | ,0xC0,0x04,0x12,0x0F,0x37,0xE5,0x33,0xFF,0xC3,0x74,0x20,0x9F,0xFD,0xE4,0x94,0x00 | ||
403 | ,0xFC,0x7E,0x06,0x7F,0x40,0x12,0x00,0x70,0xE4,0xFC,0xFD,0xD0,0x00,0x12,0x01,0x74 | ||
404 | ,0x90,0x1B,0x14,0xEE,0xF0,0xA3,0xEF,0xF0,0xA2,0x41,0xE4,0xFE,0x33,0x54,0x01,0x78 | ||
405 | ,0x07,0xC3,0x33,0xCE,0x33,0xCE,0xD8,0xF9,0xFD,0xAC,0x06,0xA2,0x40,0xE4,0x33,0x54 | ||
406 | ,0x01,0x4C,0xFC,0xA2,0x42,0xE4,0xFE,0x33,0x54,0x01,0x78,0x06,0xC3,0x33,0xCE,0x33 | ||
407 | ,0xCE,0xD8,0xF9,0xB1,0xAA,0xA2,0x43,0xE4,0xFE,0x33,0x54,0x01,0x78,0x05,0xC3,0x33 | ||
408 | ,0xCE,0x33,0xCE,0xD8,0xF9,0xB1,0xAA,0xA2,0x44,0xE4,0x33,0x54,0x01,0xC4,0xF8,0x54 | ||
409 | ,0x0F,0xC8,0x68,0xFF,0xE4,0xC4,0x54,0xF0,0x48,0x4C,0xFC,0xEF,0x4D,0xFD,0xE5,0x33 | ||
410 | ,0x54,0x0F,0xFF,0xEC,0xF5,0x48,0xEF,0x4D,0xF5,0x49,0x22,0xD2,0x41,0xD2,0x42,0xD2 | ||
411 | ,0x43,0xD2,0x44,0xAE,0x2F,0xAF,0x30,0xAB,0x07,0xAA,0x06,0xE4,0xF9,0xF8,0xFF,0x22 | ||
412 | ,0xC2,0x40,0xC2,0x41,0xC2,0x42,0xC2,0x43,0x22,0xE4,0xF5,0xC1,0xF1,0x31,0x8F,0xC2 | ||
413 | ,0x22,0x7F,0x20,0x12,0x0D,0x22,0xEF,0x54,0x03,0x64,0x03,0x7F,0x00,0x60,0x02,0x7F | ||
414 | ,0x01,0x22,0xAF,0xC1,0xEF,0x14,0x60,0x0C,0x04,0x70,0x16,0x74,0xFF,0x90,0x1B,0x3B | ||
415 | ,0xF0,0xA3,0x80,0x08,0x90,0x1B,0x3B,0xE4,0xF0,0xA3,0x74,0x0A,0xF0,0xE4,0xF5,0xC1 | ||
416 | ,0x22,0x75,0xC1,0x01,0x22,0xAF,0xC1,0xEF,0xFE,0xAD,0xC2,0xED,0xFF,0xE4,0xF5,0xC1 | ||
417 | ,0x8F,0x82,0x8E,0x83,0x93,0xFC,0x74,0x01,0x93,0xF5,0xC3,0xEC,0xF5,0xC4,0x22,0xE4 | ||
418 | ,0xF5,0x8F,0xF1,0x92,0x75,0xA8,0x81,0x53,0xC9,0xFE,0x75,0xC5,0xFF,0x12,0x04,0x6F | ||
419 | ,0x80,0xFB,0x75,0xC9,0xFF,0x75,0xCA,0xFF,0x75,0xC7,0xFF,0x75,0xC8,0xFF,0x22,0xE5 | ||
420 | ,0xC1,0xB4,0x80,0x05,0x12,0x09,0x2E,0x80,0x3E,0xE4,0xFD,0xAF,0xC1,0x12,0x18,0x35 | ||
421 | ,0x12,0x19,0xB7,0x70,0x06,0xE9,0xF4,0x70,0x02,0xEA,0xF4,0x70,0x04,0x75,0xC1,0x01 | ||
422 | ,0x22,0x90,0x1B,0x0F,0xE0,0x60,0x03,0x12,0x0F,0x87,0xE4,0x90,0x1B,0x0F,0xF0,0xA3 | ||
423 | ,0xE5,0xC1,0xF0,0xC2,0x48,0xC2,0x47,0x12,0x0A,0xDE,0x12,0x0F,0xAA,0x7F,0x03,0x7E | ||
424 | ,0x00,0x12,0x04,0x31,0x12,0x0E,0x2F,0xE4,0xF5,0xC1,0x22,0xAD,0xC2,0xAF,0xC3,0x12 | ||
425 | ,0x18,0x35,0x12,0x19,0xB7,0x70,0x06,0xE9,0xF4,0x70,0x02,0xEA,0xF4,0x70,0x08,0x75 | ||
426 | ,0xC1,0x01,0xF5,0xC2,0xF5,0xC3,0x22,0xE5,0xC1,0x90,0x1B,0x4A,0x70,0x05,0x75,0xF0 | ||
427 | ,0x9D,0x80,0x04,0xE4,0x75,0xF0,0x9F,0x12,0x00,0xFB,0x90,0x1B,0x49,0xE4,0x75,0xF0 | ||
428 | ,0x01,0x12,0x02,0xF5,0x12,0x00,0x06,0xF5,0xC2,0x90,0x1B,0x49,0x12,0x0F,0xE3,0xF5 | ||
429 | ,0xC3,0xE4,0xF5,0xC1,0x22,0xAC,0x07,0x90,0x1B,0x2D,0x11,0x70,0x12,0x01,0x11,0xFF | ||
430 | ,0xAE,0xF0,0xF4,0x70,0x02,0xEE,0xF4,0x60,0x1D,0xED,0x70,0x04,0xEF,0x6C,0x60,0x16 | ||
431 | ,0xBD,0x01,0x0A,0x12,0x01,0x11,0xE5,0xF0,0xB5,0x04,0x02,0x80,0x09,0x74,0x04,0x29 | ||
432 | ,0xF9,0xE4,0x3A,0xFA,0x80,0xD6,0x90,0x00,0x02,0x12,0x01,0x3C,0xFF,0xAE,0xF0,0x22 | ||
433 | ,0xE0,0xFE,0xA3,0xE0,0xAA,0x06,0xF9,0x7B,0xFF,0x22,0xEF,0x24,0x34,0x60,0x06,0x04 | ||
434 | ,0x70,0x05,0x8D,0xCB,0x22,0x8D,0xCC,0x22,0x8F,0xFA,0x8D,0xFB,0x75,0xF8,0x20,0x02 | ||
435 | ,0x08,0x90,0x90,0x1B,0x49,0xE5,0xC2,0xF0,0xE0,0xFF,0xC3,0x94,0xFF,0x50,0x09,0xAD | ||
436 | ,0xC4,0x11,0x88,0xE4,0xF5,0xC1,0x80,0x03,0x75,0xC1,0x01,0xE4,0xF5,0xC2,0x22,0xE4 | ||
437 | ,0xFD,0xAF,0xC1,0xEF,0x14,0x60,0x25,0x14,0x60,0x39,0x24,0xFC,0x60,0x51,0x14,0x60 | ||
438 | ,0x56,0x14,0x60,0x5B,0x24,0x08,0x70,0x63,0xE5,0xC2,0xD3,0x94,0x01,0x40,0x04,0x7D | ||
439 | ,0x01,0x80,0x5A,0xAF,0xC2,0x90,0x1B,0x00,0xEF,0xF0,0x80,0x51,0xAF,0xC3,0xAC,0xC2 | ||
440 | ,0xEC,0x2F,0xFF,0xE4,0x33,0x4F,0x70,0x04,0x7D,0x01,0x80,0x41,0x31,0x30,0x90,0x1B | ||
441 | ,0x01,0x80,0x29,0x31,0x30,0xD3,0x94,0x80,0xEE,0x94,0x0C,0x50,0x09,0xC3,0xEF,0x94 | ||
442 | ,0x32,0xEE,0x94,0x00,0x50,0x04,0x7D,0x01,0x80,0x23,0x90,0x1B,0x03,0x80,0x0D,0x90 | ||
443 | ,0x1B,0x09,0xE5,0xC2,0xF0,0x80,0x16,0x31,0x30,0x90,0x1B,0x37,0xEE,0x80,0x06,0xAF | ||
444 | ,0xC2,0x90,0x1B,0x39,0xE4,0xF0,0xA3,0xEF,0xF0,0x80,0x02,0x7D,0x01,0x8D,0xC1,0x22 | ||
445 | ,0xAF,0xC2,0xEF,0xFE,0xAC,0xC3,0xEC,0xFB,0xEB,0xFF,0x22,0x90,0x1B,0x00,0xE0,0x60 | ||
446 | ,0x04,0xD2,0x47,0x80,0x02,0xC2,0x47,0x30,0x47,0x15,0x12,0x0F,0xBB,0x90,0x1B,0x02 | ||
447 | ,0xE0,0x9F,0x90,0x1B,0x01,0xE0,0x9E,0x40,0x03,0xD2,0x48,0x22,0xC2,0x48,0x22,0x12 | ||
448 | ,0x0F,0xBB,0x90,0x1B,0x46,0xE0,0x9F,0x90,0x1B,0x45,0xE0,0x9E,0x40,0x03,0xD2,0x48 | ||
449 | ,0x22,0xC2,0x48,0x22,0xC0,0xE0,0xC0,0xF0,0xC0,0x83,0xC0,0x82,0xC0,0xD0,0x75,0xD0 | ||
450 | ,0x00,0xC0,0x00,0xC0,0x01,0xC0,0x02,0xC0,0x03,0xC0,0x04,0xC0,0x05,0xC0,0x06,0xC0 | ||
451 | ,0x07,0xE5,0xC7,0x30,0xE0,0x06,0x12,0x08,0x30,0x53,0xC7,0x01,0xD0,0x07,0xD0,0x06 | ||
452 | ,0xD0,0x05,0xD0,0x04,0xD0,0x03,0xD0,0x02,0xD0,0x01,0xD0,0x00,0xD0,0xD0,0xD0,0x82 | ||
453 | ,0xD0,0x83,0xD0,0xF0,0xD0,0xE0,0x32,0xAA,0x06,0xA9,0x07,0x7B,0xFF,0x90,0x1B,0x49 | ||
454 | ,0x12,0x03,0x0C,0x90,0x1B,0x49,0x12,0x02,0xEC,0x74,0xFF,0xF5,0x83,0xF5,0x82,0x6B | ||
455 | ,0x22,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
456 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
457 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
458 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
459 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
460 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
461 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
462 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
463 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
464 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
465 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
466 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
467 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
468 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
469 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
470 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
471 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
472 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
473 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
474 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
475 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
476 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
477 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
478 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
479 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
480 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
481 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
482 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
483 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
484 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
485 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
486 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
487 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
488 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
489 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
490 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
491 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
492 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
493 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
494 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
495 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
496 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
497 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
498 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
499 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
500 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
501 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
502 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
503 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
504 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
505 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
506 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
507 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
508 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
509 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
510 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
511 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
512 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
513 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
514 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
515 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
516 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
517 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
518 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
519 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
520 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
521 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
522 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
523 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
524 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
525 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
526 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
527 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
528 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
529 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
530 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
531 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
532 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
533 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
534 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
535 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
536 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
537 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
538 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
539 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
540 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
541 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
542 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
543 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xFF,0xFF | ||
544 | ,0x21,0x20,0x24,0x90,0x21,0xB2,0x21,0x95,0x21,0x94,0x60,0x00,0x64,0x21,0x95,0x26 | ||
545 | ,0x5E,0x25,0x66,0x2A,0x22,0x21,0x2E,0x26,0x30,0x22,0x38,0x24,0x40,0x23,0x9E,0x22 | ||
546 | ,0x9A,0x84,0x0E,0x84,0xEE,0x84,0xEE,0x22,0x52,0x21,0x20,0x21,0x58,0xFF,0xFF,0xFF | ||
547 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x40,0x03,0x00,0x01 | ||
548 | ,0x03,0x02,0x01,0x00,0xFF,0x60,0x03,0x18,0x00,0xE1,0x0F,0xF8,0xF4,0xF8,0x28,0x24 | ||
549 | ,0x0C,0x26,0x00,0x27,0x0F,0x00,0x0E,0x02,0x01,0xD0,0x07,0x64,0x00,0x94,0x11,0xE8 | ||
550 | ,0x03,0x64,0x00,0xF4,0x01,0x02,0x11,0x00,0xE8,0x03,0xFC,0x18,0x03,0xE9,0xFF,0xFF | ||
551 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x60,0x03,0x07,0x06,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
552 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
553 | ,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF | ||
554 | }; | ||
555 | |||
556 | struct ov14810_reg { | ||
557 | u16 addr; | ||
558 | u16 val; | ||
559 | }; | ||
560 | |||
561 | struct ov14810_sensor { | ||
562 | struct i2c_client *i2c_client; | ||
563 | struct ov14810_platform_data *pdata; | ||
564 | }; | ||
565 | |||
566 | struct ov14810_info { | ||
567 | int mode; | ||
568 | int uC_programmed; | ||
569 | struct ov14810_sensor sensor; | ||
570 | struct ov14810_sensor uC; | ||
571 | struct ov14810_sensor slaveDev; | ||
572 | }; | ||
573 | |||
574 | static struct ov14810_info *info; | ||
575 | |||
576 | #define OV14810_TABLE_WAIT_MS 0 | ||
577 | #define OV14810_TABLE_END 1 | ||
578 | |||
579 | static struct ov14810_reg mode_4416x3312[] = { | ||
580 | {0x0103, 0x01}, | ||
581 | |||
582 | {0x3003, 0x09}, | ||
583 | {0x3004, 0x00}, | ||
584 | {0x3005, 0xa7}, | ||
585 | {0x3006, 0x80}, | ||
586 | {0x3007, 0x08}, | ||
587 | {0x3013, 0x1f}, | ||
588 | |||
589 | {0x3018, 0x04}, | ||
590 | {0x301b, 0xe0}, | ||
591 | {0x301c, 0xf8}, | ||
592 | {0x3020, 0x01}, | ||
593 | {0x3106, 0x05}, | ||
594 | {0x3600, 0x2d}, | ||
595 | {0x3601, 0x1f}, | ||
596 | {0x360a, 0x2e}, | ||
597 | {0x360f, 0x24}, | ||
598 | {0x3611, 0x6c}, | ||
599 | {0x3613, 0x84}, | ||
600 | {0x3705, 0xd1}, | ||
601 | {0x3707, 0x73}, | ||
602 | {0x3708, 0x01}, | ||
603 | {0x370e, 0x04}, | ||
604 | {0x3710, 0x40}, | ||
605 | {0x3711, 0x1c}, | ||
606 | {0x3717, 0x80}, | ||
607 | {0x3718, 0x11}, | ||
608 | {0x3719, 0x11}, | ||
609 | {0x371b, 0xa0}, | ||
610 | {0x371e, 0x2c}, | ||
611 | {0x3723, 0x30}, | ||
612 | {0x3726, 0x70}, | ||
613 | {0x3808, 0x00}, | ||
614 | {0x380a, 0x00}, | ||
615 | {0x3817, 0x24}, | ||
616 | {0x3819, 0x80}, | ||
617 | {0x3a00, 0x78}, | ||
618 | {0x3a13, 0x46}, | ||
619 | {0x3a18, 0x00}, | ||
620 | {0x3a19, 0x7f}, | ||
621 | {0x3a1a, 0x06}, | ||
622 | {0x3a25, 0x83}, | ||
623 | {0x3b09, 0x0a}, | ||
624 | {0x4002, 0xc5}, | ||
625 | {0x4004, 0x02}, | ||
626 | {0x4005, 0x10}, | ||
627 | {0x4009, 0x40}, | ||
628 | {0x404f, 0xff}, | ||
629 | {0x4709, 0x00}, | ||
630 | {0x4801, 0x0f}, | ||
631 | {0x4806, 0x80}, | ||
632 | {0x4842, 0x01}, | ||
633 | {0x5000, 0x00}, | ||
634 | {0x5001, 0x00}, | ||
635 | {0x5002, 0x00}, | ||
636 | {0x503b, 0x01}, | ||
637 | {0x503c, 0x10}, | ||
638 | {0x5041, 0x0e}, | ||
639 | {0x5780, 0xfc}, | ||
640 | {0x5b01, 0x03}, | ||
641 | {0x5b03, 0x00}, | ||
642 | |||
643 | {0x3003, 0x0a}, | ||
644 | {0x3005, 0xa7}, | ||
645 | |||
646 | {0x3006, 0x80}, | ||
647 | {0x3007, 0x08}, | ||
648 | {0x3013, 0x1f}, | ||
649 | |||
650 | {0x3602, 0x42}, | ||
651 | {0x3604, 0x80}, | ||
652 | {0x3605, 0x11}, | ||
653 | {0x360c, 0x42}, | ||
654 | {0x360d, 0x13}, | ||
655 | {0x3614, 0x05}, | ||
656 | |||
657 | {0x3702, 0x10}, | ||
658 | {0x3704, 0x14}, | ||
659 | {0x3707, 0x73}, | ||
660 | {0x370a, 0x80}, | ||
661 | {0x370b, 0x00}, | ||
662 | {0x370c, 0x04}, | ||
663 | {0x370d, 0x0d}, | ||
664 | {0x370f, 0x61}, | ||
665 | {0x3713, 0xfa}, | ||
666 | {0x3714, 0x2f}, | ||
667 | {0x3715, 0x2c}, | ||
668 | {0x3716, 0x0b}, | ||
669 | {0x371c, 0x28}, | ||
670 | {0x371d, 0x20}, | ||
671 | {0x3721, 0x08}, | ||
672 | {0x3724, 0x18}, | ||
673 | {0x3725, 0x17}, | ||
674 | {0x3727, 0x65}, | ||
675 | {0x3728, 0x0c}, | ||
676 | |||
677 | {0x3803, 0x0b}, | ||
678 | {0x3804, 0x11}, | ||
679 | {0x3805, 0x40}, | ||
680 | {0x3806, 0x0c}, | ||
681 | {0x3807, 0xf9}, | ||
682 | {0x380c, 0x09}, | ||
683 | {0x380d, 0x5c}, | ||
684 | {0x380e, 0x0d}, | ||
685 | {0x380f, 0x08}, | ||
686 | {0x3810, 0x44}, | ||
687 | {0x3811, 0x96}, | ||
688 | {0x3818, 0x40}, | ||
689 | {0x381c, 0x30}, | ||
690 | {0x381d, 0x10}, | ||
691 | {0x381e, 0x0c}, | ||
692 | {0x381f, 0xf8}, | ||
693 | {0x3820, 0x00}, | ||
694 | {0x3821, 0x0c}, | ||
695 | {0x3503, 0x13}, | ||
696 | |||
697 | {0x4050, 0xc0}, | ||
698 | {0x4051, 0x00}, | ||
699 | {0x4053, 0xa1}, | ||
700 | {0x4837, 0x1b}, | ||
701 | {0x503d, 0x00}, | ||
702 | {0x5042, 0x21}, | ||
703 | {0x5047, 0x00}, | ||
704 | |||
705 | {0x3a08, 0x1f}, | ||
706 | {0x3a09, 0x40}, | ||
707 | {0x3a0a, 0x1a}, | ||
708 | {0x3a0b, 0x00}, | ||
709 | {0x3a0d, 0x08}, | ||
710 | {0x3a0e, 0x06}, | ||
711 | |||
712 | {0x503d, 0x00}, | ||
713 | |||
714 | {0x0100, 0x01}, | ||
715 | {OV14810_TABLE_END, 0x0000} | ||
716 | }; | ||
717 | |||
718 | static struct ov14810_reg mode_1280x720[] = { | ||
719 | {0x0103, 0x01}, | ||
720 | {OV14810_TABLE_WAIT_MS, 20}, | ||
721 | |||
722 | {0x3003, 0x0a}, | ||
723 | {0x3004, 0x00}, | ||
724 | {0x3005, 0xa7}, | ||
725 | {0x3006, 0x80}, | ||
726 | {0x3007, 0x08}, | ||
727 | |||
728 | {0x3018, 0x04}, | ||
729 | {0x301b, 0xe0}, | ||
730 | {0x301c, 0xf8}, | ||
731 | {0x3020, 0x01}, | ||
732 | {0x3106, 0x05}, | ||
733 | {0x3600, 0x2d}, | ||
734 | {0x3601, 0x1f}, | ||
735 | {0x3609, 0x00}, | ||
736 | {0x360a, 0x2e}, | ||
737 | {0x360f, 0x24}, | ||
738 | {0x3611, 0x6c}, | ||
739 | {0x3613, 0x84}, | ||
740 | {0x3702, 0x20}, | ||
741 | {0x3704, 0x28}, | ||
742 | {0x3705, 0xd1}, | ||
743 | {0x3708, 0x01}, | ||
744 | {0x370e, 0x04}, | ||
745 | {0x3710, 0x40}, | ||
746 | {0x3711, 0x1c}, | ||
747 | {0x3714, 0x5f}, | ||
748 | {0x3715, 0x58}, | ||
749 | {0x3717, 0x80}, | ||
750 | {0x3718, 0x11}, | ||
751 | {0x3719, 0x11}, | ||
752 | {0x371b, 0xa0}, | ||
753 | {0x371c, 0x46}, | ||
754 | {0x371d, 0x40}, | ||
755 | {0x371e, 0x2c}, | ||
756 | {0x3723, 0x30}, | ||
757 | {0x3725, 0x2e}, | ||
758 | {0x3726, 0x70}, | ||
759 | {0x3808, 0x00}, | ||
760 | {0x380a, 0x00}, | ||
761 | {0x3817, 0x24}, | ||
762 | {0x3819, 0x80}, | ||
763 | {0x382c, 0x02}, | ||
764 | {0x382d, 0x01}, | ||
765 | {0x3a00, 0x78}, | ||
766 | {0x3a13, 0x46}, | ||
767 | {0x3a18, 0x00}, | ||
768 | {0x3a19, 0x7f}, | ||
769 | {0x3a1a, 0x06}, | ||
770 | {0x3a25, 0x83}, | ||
771 | {0x3b09, 0x0a}, | ||
772 | {0x4002, 0xc5}, | ||
773 | {0x4004, 0x02}, | ||
774 | {0x4005, 0x10}, | ||
775 | {0x4009, 0x40}, | ||
776 | {0x404f, 0xff}, | ||
777 | {0x4709, 0x00}, | ||
778 | {0x4801, 0x0f}, | ||
779 | {0x4806, 0x80}, | ||
780 | {0x4842, 0x01}, | ||
781 | {0x5000, 0x00}, | ||
782 | {0x5001, 0x00}, | ||
783 | {0x5002, 0x00}, | ||
784 | {0x503b, 0x01}, | ||
785 | {0x503c, 0x10}, | ||
786 | {0x5041, 0x0e}, | ||
787 | {0x5780, 0xfc}, | ||
788 | {0x5b00, 0x10}, | ||
789 | {0x5b01, 0x5b}, | ||
790 | {0x5b03, 0x00}, | ||
791 | |||
792 | |||
793 | {0x3005, 0xa7}, | ||
794 | {0x3006, 0x80}, | ||
795 | {0x3007, 0x08}, | ||
796 | {0x3013, 0x1f}, | ||
797 | |||
798 | {0x3602, 0x53}, | ||
799 | {0x3604, 0x80}, | ||
800 | {0x3605, 0x01}, | ||
801 | {0x360b, 0x0c}, | ||
802 | {0x360c, 0x45}, | ||
803 | {0x360d, 0x03}, | ||
804 | {0x3614, 0x05}, | ||
805 | |||
806 | {0x3707, 0x73}, | ||
807 | {0x370a, 0x81}, | ||
808 | {0x370b, 0x20}, | ||
809 | {0x370c, 0x04}, | ||
810 | {0x370d, 0x01}, | ||
811 | {0x370f, 0x00}, | ||
812 | {0x3713, 0xe6}, | ||
813 | {0x3716, 0xf0}, | ||
814 | {0x3721, 0x08}, | ||
815 | {0x3724, 0x2e}, | ||
816 | {0x3727, 0x60}, | ||
817 | {0x3728, 0x02}, | ||
818 | |||
819 | {0x3803, 0x07}, | ||
820 | {0x3804, 0x05}, /* width */ | ||
821 | {0x3805, 0x09}, | ||
822 | {0x3806, 0x02}, /* height */ | ||
823 | {0x3807, 0xd8}, | ||
824 | {0x380c, 0x05}, | ||
825 | {0x380d, 0x66}, | ||
826 | {0x380e, 0x02}, | ||
827 | {0x380f, 0xe4}, | ||
828 | {0x3810, 0x22}, | ||
829 | {0x3811, 0x02}, | ||
830 | {0x3818, 0x45}, | ||
831 | {0x381c, 0x13}, | ||
832 | {0x381d, 0xb8}, | ||
833 | {0x381e, 0x05}, /* height w/o skipping */ | ||
834 | {0x381f, 0xc0}, | ||
835 | {0x3820, 0x03}, | ||
836 | {0x3821, 0xa8}, | ||
837 | {0x3503, 0x13}, /* Manual exposure, gain control */ | ||
838 | |||
839 | {0x4050, 0xc0}, | ||
840 | {0x4051, 0x00}, | ||
841 | {0x4053, 0xa1}, | ||
842 | {0x4837, 0x1b}, | ||
843 | {0x503d, 0x00}, | ||
844 | {0x5042, 0x31}, | ||
845 | {0x5047, 0x00}, | ||
846 | |||
847 | {0x100, 0x01}, | ||
848 | {OV14810_TABLE_END, 0x0000} | ||
849 | }; | ||
850 | |||
851 | enum { | ||
852 | OV14810_MODE_4416x3312, | ||
853 | OV14810_MODE_1280x720 | ||
854 | }; | ||
855 | |||
856 | static struct ov14810_reg *mode_table[] = { | ||
857 | [OV14810_MODE_4416x3312] = mode_4416x3312, | ||
858 | [OV14810_MODE_1280x720] = mode_1280x720 | ||
859 | }; | ||
860 | |||
861 | static inline void ov14810_get_frame_length_regs(struct ov14810_reg *regs, | ||
862 | u32 frame_length) | ||
863 | { | ||
864 | regs->addr = OV14810_FRAME_LENGTH_REG_ADDR0; | ||
865 | regs->val = (frame_length >> 8) & 0xff; | ||
866 | (regs + 1)->addr = OV14810_FRAME_LENGTH_REG_ADDR1; | ||
867 | (regs + 1)->val = (frame_length) & 0xff; | ||
868 | } | ||
869 | |||
870 | static inline void ov14810_get_coarse_time_regs(struct ov14810_reg *regs, | ||
871 | u32 coarse_time) | ||
872 | { | ||
873 | regs->addr = OV14810_COARSE_TIME_REG_ADDR0; | ||
874 | regs->val = (coarse_time >> 12) & 0xff; | ||
875 | (regs + 1)->addr = OV14810_COARSE_TIME_REG_ADDR1; | ||
876 | (regs + 1)->val = (coarse_time >> 4) & 0xff; | ||
877 | (regs + 2)->addr = OV14810_COARSE_TIME_REG_ADDR2; | ||
878 | (regs + 2)->val = (coarse_time & 0xf) << 4; | ||
879 | } | ||
880 | |||
881 | static inline void ov14810_get_gain_reg(struct ov14810_reg *regs, u16 gain) | ||
882 | { | ||
883 | regs->addr = OV14810_GAIN_REG_ADDR0; | ||
884 | regs->val = gain; | ||
885 | } | ||
886 | |||
887 | static int ov14810_write16(struct i2c_client *client, u16 addr, u8 val) | ||
888 | { | ||
889 | int err; | ||
890 | struct i2c_msg msg; | ||
891 | unsigned char data[3]; | ||
892 | |||
893 | if (!client->adapter) | ||
894 | return -ENODEV; | ||
895 | |||
896 | data[0] = (u8) (addr >> 8); | ||
897 | data[1] = (u8) (addr & 0xff); | ||
898 | data[2] = (u8) (val & 0xff); | ||
899 | |||
900 | msg.addr = client->addr; | ||
901 | msg.flags = 0; | ||
902 | msg.len = 3; | ||
903 | msg.buf = data; | ||
904 | |||
905 | err = i2c_transfer(client->adapter, &msg, 1); | ||
906 | if (err != 1) { | ||
907 | pr_err("ov14810: i2c transfer failed %x %x\n", addr, val); | ||
908 | return -EIO; | ||
909 | } | ||
910 | |||
911 | return 0; | ||
912 | } | ||
913 | |||
914 | static int ov14810_write8(struct i2c_client *client, u8 addr, u8 val) | ||
915 | { | ||
916 | int err; | ||
917 | struct i2c_msg msg; | ||
918 | unsigned char data[2]; | ||
919 | |||
920 | if (!client->adapter) | ||
921 | return -ENODEV; | ||
922 | |||
923 | data[0] = (u8) (addr); | ||
924 | data[1] = (u8) (val & 0xff); | ||
925 | |||
926 | msg.addr = client->addr; | ||
927 | msg.flags = 0; | ||
928 | msg.len = 2; | ||
929 | msg.buf = data; | ||
930 | |||
931 | err = i2c_transfer(client->adapter, &msg, 1); | ||
932 | if (err != 1) { | ||
933 | pr_err("ov14810: i2c transfer failed %x %x\n",addr, val); | ||
934 | return -EIO; | ||
935 | } | ||
936 | |||
937 | return 0; | ||
938 | } | ||
939 | |||
940 | static int ov14810_write_reg_helper(struct ov14810_info *info, | ||
941 | u16 addr, u8 val) | ||
942 | { | ||
943 | return ov14810_write16(info->sensor.i2c_client, addr, val); | ||
944 | } | ||
945 | |||
946 | static int ov14810_write_table(struct ov14810_info *info, | ||
947 | const struct ov14810_reg table[], | ||
948 | const struct ov14810_reg override_list[], | ||
949 | int num_override_regs) | ||
950 | { | ||
951 | int err; | ||
952 | const struct ov14810_reg *next; | ||
953 | int i; | ||
954 | u16 val; | ||
955 | |||
956 | for (next = table; next->addr != OV14810_TABLE_END; next++) { | ||
957 | val = next->val; | ||
958 | |||
959 | if (next->addr == OV14810_TABLE_WAIT_MS) { | ||
960 | msleep(val); | ||
961 | continue; | ||
962 | } | ||
963 | |||
964 | /* When an override list is passed in, replace the reg */ | ||
965 | /* value to write if the reg is in the list */ | ||
966 | if (override_list) { | ||
967 | for (i = 0; i < num_override_regs; i++) { | ||
968 | if (next->addr == override_list[i].addr) { | ||
969 | val = override_list[i].val; | ||
970 | break; | ||
971 | } | ||
972 | } | ||
973 | } | ||
974 | err = ov14810_write_reg_helper(info, next->addr, val); | ||
975 | } | ||
976 | return err; | ||
977 | } | ||
978 | |||
979 | static int ov14810_set_mode(struct ov14810_info *info, struct ov14810_mode *mode) | ||
980 | { | ||
981 | int sensor_mode; | ||
982 | int err; | ||
983 | struct ov14810_reg reg_list[6]; | ||
984 | |||
985 | pr_info("%s: xres %u yres %u framelength %u coarsetime %u gain %u\n", | ||
986 | __func__, mode->xres, mode->yres, mode->frame_length, | ||
987 | mode->coarse_time, mode->gain); | ||
988 | if (mode->xres == 1280 && mode->yres == 720) | ||
989 | sensor_mode = OV14810_MODE_1280x720; | ||
990 | else if (mode->xres == 4416 && mode->yres == 3312) | ||
991 | sensor_mode = OV14810_MODE_4416x3312; | ||
992 | else { | ||
993 | pr_err("%s: invalid resolution supplied to set mode %d %d\n", | ||
994 | __func__, mode->xres, mode->yres); | ||
995 | return -EINVAL; | ||
996 | } | ||
997 | |||
998 | /* get a list of override regs for the asking frame length, */ | ||
999 | /* coarse integration time, and gain. */ | ||
1000 | ov14810_get_frame_length_regs(reg_list, mode->frame_length); | ||
1001 | ov14810_get_coarse_time_regs(reg_list + 2, mode->coarse_time); | ||
1002 | ov14810_get_gain_reg(reg_list + 5, mode->gain); | ||
1003 | |||
1004 | err = ov14810_write_table(info, mode_table[sensor_mode], | ||
1005 | reg_list, 6); | ||
1006 | |||
1007 | if (err) | ||
1008 | return err; | ||
1009 | |||
1010 | info->mode = sensor_mode; | ||
1011 | return 0; | ||
1012 | } | ||
1013 | |||
1014 | static int ov14810_set_frame_length(struct ov14810_info *info, u32 frame_length) | ||
1015 | { | ||
1016 | struct ov14810_reg reg_list[2]; | ||
1017 | int i; | ||
1018 | int ret; | ||
1019 | |||
1020 | ov14810_get_frame_length_regs(reg_list, frame_length); | ||
1021 | |||
1022 | for (i = 0; i < 2; i++) { | ||
1023 | ret = ov14810_write_reg_helper(info, reg_list[i].addr, | ||
1024 | reg_list[i].val); | ||
1025 | if (ret) | ||
1026 | return ret; | ||
1027 | } | ||
1028 | |||
1029 | return 0; | ||
1030 | } | ||
1031 | |||
1032 | static int ov14810_set_coarse_time(struct ov14810_info *info, u32 coarse_time) | ||
1033 | { | ||
1034 | int ret; | ||
1035 | |||
1036 | struct ov14810_reg reg_list[3]; | ||
1037 | int i; | ||
1038 | |||
1039 | ov14810_get_coarse_time_regs(reg_list, coarse_time); | ||
1040 | |||
1041 | ret = ov14810_write_reg_helper(info, OV14810_GROUP_ACCESS_REG_ADDR, 0x01); | ||
1042 | if (ret) | ||
1043 | return ret; | ||
1044 | |||
1045 | for (i = 0; i < 3; i++) { | ||
1046 | ret = ov14810_write_reg_helper(info, reg_list[i].addr, | ||
1047 | reg_list[i].val); | ||
1048 | if (ret) | ||
1049 | return ret; | ||
1050 | } | ||
1051 | |||
1052 | ret = ov14810_write_reg_helper(info, OV14810_GROUP_ACCESS_REG_ADDR, 0x11); | ||
1053 | if (ret) | ||
1054 | return ret; | ||
1055 | |||
1056 | ret = ov14810_write_reg_helper(info, OV14810_GROUP_ACCESS_REG_ADDR, 0xa1); | ||
1057 | if (ret) | ||
1058 | return ret; | ||
1059 | |||
1060 | return 0; | ||
1061 | } | ||
1062 | |||
1063 | static int ov14810_set_gain(struct ov14810_info *info, u16 gain) | ||
1064 | { | ||
1065 | int ret; | ||
1066 | struct ov14810_reg reg_list; | ||
1067 | |||
1068 | ov14810_get_gain_reg(®_list, gain); | ||
1069 | |||
1070 | ret = ov14810_write_reg_helper(info, reg_list.addr, reg_list.val); | ||
1071 | |||
1072 | return ret; | ||
1073 | } | ||
1074 | |||
1075 | static int ov14810_set_power(int powerLevel) | ||
1076 | { | ||
1077 | pr_info("%s: powerLevel=%d \n", __func__, powerLevel); | ||
1078 | |||
1079 | if (info->sensor.pdata) { | ||
1080 | if (powerLevel && info->sensor.pdata->power_on) { | ||
1081 | info->sensor.pdata->power_on(); | ||
1082 | msleep(1000); | ||
1083 | } | ||
1084 | else if (info->sensor.pdata->power_off) { | ||
1085 | info->sensor.pdata->power_off(); | ||
1086 | } | ||
1087 | } | ||
1088 | |||
1089 | return 0; | ||
1090 | } | ||
1091 | |||
1092 | static long ov14810_ioctl(struct file *file, | ||
1093 | unsigned int cmd, unsigned long arg) | ||
1094 | { | ||
1095 | struct ov14810_info *info = file->private_data; | ||
1096 | int err; | ||
1097 | |||
1098 | switch (cmd) { | ||
1099 | case OV14810_IOCTL_SET_MODE: | ||
1100 | { | ||
1101 | struct ov14810_mode mode; | ||
1102 | |||
1103 | err = copy_from_user(&mode,(const void __user *)arg, | ||
1104 | sizeof(struct ov14810_mode)); | ||
1105 | if (err) { | ||
1106 | pr_err("%s %d\n", __func__, __LINE__); | ||
1107 | return err; | ||
1108 | } | ||
1109 | |||
1110 | return ov14810_set_mode(info, &mode); | ||
1111 | } | ||
1112 | case OV14810_IOCTL_SET_FRAME_LENGTH: | ||
1113 | return ov14810_set_frame_length(info, (u32)arg); | ||
1114 | case OV14810_IOCTL_SET_COARSE_TIME: | ||
1115 | return ov14810_set_coarse_time(info, (u32)arg); | ||
1116 | case OV14810_IOCTL_SET_GAIN: | ||
1117 | return ov14810_set_gain(info, (u16)arg); | ||
1118 | case OV14810_IOCTL_GET_STATUS: | ||
1119 | { | ||
1120 | u16 status = 0; | ||
1121 | err = copy_to_user((void __user *)arg, &status,2); | ||
1122 | if (err) { | ||
1123 | pr_err("%s %d\n", __func__, __LINE__); | ||
1124 | return err; | ||
1125 | } | ||
1126 | return 0; | ||
1127 | } | ||
1128 | default: | ||
1129 | return -EINVAL; | ||
1130 | } | ||
1131 | return 0; | ||
1132 | } | ||
1133 | |||
1134 | static int ov14810_slavedev_open(void) | ||
1135 | { | ||
1136 | pr_info("%s\n", __func__); | ||
1137 | |||
1138 | OV14810_I2C_WRITE8(info->slaveDev.i2c_client, 0x19, 0x67); | ||
1139 | OV14810_I2C_WRITE8(info->slaveDev.i2c_client, 0x18, 0x02); | ||
1140 | |||
1141 | return 0; | ||
1142 | } | ||
1143 | |||
1144 | static int ov14810_slavedev_reset(void) | ||
1145 | { | ||
1146 | pr_info("%s\n", __func__); | ||
1147 | |||
1148 | OV14810_I2C_WRITE8(info->slaveDev.i2c_client, 0x18, 0x03); | ||
1149 | msleep(1000); | ||
1150 | |||
1151 | OV14810_I2C_WRITE8(info->slaveDev.i2c_client, 0xc1, 0x0); | ||
1152 | OV14810_I2C_WRITE8(info->slaveDev.i2c_client, 0xc2, 0x0); | ||
1153 | OV14810_I2C_WRITE8(info->slaveDev.i2c_client, 0xc3, 0x0); | ||
1154 | OV14810_I2C_WRITE8(info->slaveDev.i2c_client, 0xc4, 0x0); | ||
1155 | OV14810_I2C_WRITE8(info->slaveDev.i2c_client, 0xc5, 0x0); | ||
1156 | |||
1157 | msleep(1000); | ||
1158 | |||
1159 | OV14810_I2C_WRITE8(info->slaveDev.i2c_client, 0xc1, 0x0); | ||
1160 | OV14810_I2C_WRITE8(info->slaveDev.i2c_client, 0xc2, 0x0); | ||
1161 | OV14810_I2C_WRITE8(info->slaveDev.i2c_client, 0xc3, 0x0); | ||
1162 | OV14810_I2C_WRITE8(info->slaveDev.i2c_client, 0xc4, 0x0); | ||
1163 | OV14810_I2C_WRITE8(info->slaveDev.i2c_client, 0xc5, 0x17); | ||
1164 | |||
1165 | msleep(1000); | ||
1166 | |||
1167 | return 0; | ||
1168 | } | ||
1169 | |||
1170 | static int ov14810uC_open(void) | ||
1171 | { | ||
1172 | int i; | ||
1173 | int err; | ||
1174 | |||
1175 | pr_info("ov14810uC programmming started \n"); | ||
1176 | |||
1177 | for (i = 0; i < sizeof(uCProgram); i++) { | ||
1178 | ov14810_write16(info->uC.i2c_client, | ||
1179 | ( ( (i & 0xff) << 8) | ( (i & 0xff00) >> 8) ), uCProgram[i]); | ||
1180 | } | ||
1181 | pr_info("ov14810uC programmming finished \n"); | ||
1182 | |||
1183 | err = ov14810_slavedev_reset(); | ||
1184 | |||
1185 | return err; | ||
1186 | } | ||
1187 | |||
1188 | static int ov14810_open(struct inode *inode, struct file *file) | ||
1189 | { | ||
1190 | int err; | ||
1191 | pr_info("%s\n", __func__); | ||
1192 | file->private_data = info; | ||
1193 | |||
1194 | err = ov14810_set_power(1); | ||
1195 | |||
1196 | if (err) | ||
1197 | return err; | ||
1198 | |||
1199 | if (info->uC_programmed == 0) { | ||
1200 | err = ov14810_slavedev_open(); | ||
1201 | |||
1202 | if (err) | ||
1203 | return err; | ||
1204 | |||
1205 | err = ov14810uC_open(); | ||
1206 | if (!err) | ||
1207 | info->uC_programmed = 1; | ||
1208 | } | ||
1209 | |||
1210 | return err; | ||
1211 | } | ||
1212 | |||
1213 | int ov14810_release(struct inode *inode, struct file *file) | ||
1214 | { | ||
1215 | pr_info("%s\n", __func__); | ||
1216 | ov14810_set_power(0); | ||
1217 | file->private_data = NULL; | ||
1218 | return 0; | ||
1219 | } | ||
1220 | |||
1221 | static const struct file_operations ov14810_fileops = { | ||
1222 | .owner = THIS_MODULE, | ||
1223 | .open = ov14810_open, | ||
1224 | .unlocked_ioctl = ov14810_ioctl, | ||
1225 | .release = ov14810_release, | ||
1226 | }; | ||
1227 | |||
1228 | static struct miscdevice ov14810_device = { | ||
1229 | .minor = MISC_DYNAMIC_MINOR, | ||
1230 | .name = "ov14810", | ||
1231 | .fops = &ov14810_fileops, | ||
1232 | }; | ||
1233 | |||
1234 | static int ov14810_probe(struct i2c_client *client, | ||
1235 | const struct i2c_device_id *id) | ||
1236 | { | ||
1237 | int err; | ||
1238 | pr_info("%s: probing sensor.\n", __func__); | ||
1239 | |||
1240 | if (!info) { | ||
1241 | info = kzalloc(sizeof(struct ov14810_info), GFP_KERNEL); | ||
1242 | if (!info) { | ||
1243 | pr_err("ov14810: Unable to allocate memory!\n"); | ||
1244 | return -ENOMEM; | ||
1245 | } | ||
1246 | } | ||
1247 | |||
1248 | err = misc_register(&ov14810_device); | ||
1249 | if (err) { | ||
1250 | pr_err("ov14810: Unable to register misc device!\n"); | ||
1251 | kfree(info); | ||
1252 | return err; | ||
1253 | } | ||
1254 | |||
1255 | info->sensor.pdata = client->dev.platform_data; | ||
1256 | info->sensor.i2c_client = client; | ||
1257 | |||
1258 | return 0; | ||
1259 | } | ||
1260 | |||
1261 | static int ov14810_remove(struct i2c_client *client) | ||
1262 | { | ||
1263 | misc_deregister(&ov14810_device); | ||
1264 | kfree(info); | ||
1265 | return 0; | ||
1266 | } | ||
1267 | |||
1268 | static int ov14810_uC_probe(struct i2c_client *client, | ||
1269 | const struct i2c_device_id *id) | ||
1270 | { | ||
1271 | if (!info) { | ||
1272 | info = kzalloc(sizeof(struct ov14810_sensor), GFP_KERNEL); | ||
1273 | if (!info) { | ||
1274 | pr_err("ov14810uC: Unable to allocate memory!\n"); | ||
1275 | return -ENOMEM; | ||
1276 | } | ||
1277 | } | ||
1278 | info->uC.pdata = client->dev.platform_data; | ||
1279 | info->uC.i2c_client = client; | ||
1280 | |||
1281 | return 0; | ||
1282 | } | ||
1283 | |||
1284 | static int ov14810_uC_remove(struct i2c_client *client) | ||
1285 | { | ||
1286 | return 0; | ||
1287 | } | ||
1288 | |||
1289 | static int ov14810_slavedev_probe(struct i2c_client *client, | ||
1290 | const struct i2c_device_id *id) | ||
1291 | { | ||
1292 | pr_info("%s: probing slave Dev of sensor.\n", __func__); | ||
1293 | |||
1294 | if (!info) { | ||
1295 | info = kzalloc(sizeof(struct ov14810_sensor), GFP_KERNEL); | ||
1296 | if (!info) { | ||
1297 | pr_err("ov14810uC: Unable to allocate memory!\n"); | ||
1298 | return -ENOMEM; | ||
1299 | } | ||
1300 | } | ||
1301 | |||
1302 | info->slaveDev.pdata = client->dev.platform_data; | ||
1303 | info->slaveDev.i2c_client = client; | ||
1304 | info->uC_programmed = 0; | ||
1305 | |||
1306 | return 0; | ||
1307 | } | ||
1308 | |||
1309 | static int ov14810_slavedev_remove(struct i2c_client *client) | ||
1310 | { | ||
1311 | return 0; | ||
1312 | } | ||
1313 | |||
1314 | static const struct i2c_device_id ov14810_id[] = { | ||
1315 | { "ov14810", 0 }, | ||
1316 | { }, | ||
1317 | }; | ||
1318 | |||
1319 | MODULE_DEVICE_TABLE(i2c, ov14810_id); | ||
1320 | |||
1321 | static struct i2c_driver ov14810_i2c_driver = { | ||
1322 | .driver = { | ||
1323 | .name = "ov14810", | ||
1324 | .owner = THIS_MODULE, | ||
1325 | }, | ||
1326 | .probe = ov14810_probe, | ||
1327 | .remove = ov14810_remove, | ||
1328 | .id_table = ov14810_id, | ||
1329 | }; | ||
1330 | |||
1331 | |||
1332 | static const struct i2c_device_id ov14810_uC_id[] = { | ||
1333 | { "ov14810uC", 0 }, | ||
1334 | { }, | ||
1335 | }; | ||
1336 | |||
1337 | MODULE_DEVICE_TABLE(i2c, ov14810_uC_id); | ||
1338 | |||
1339 | static struct i2c_driver ov14810_uC_i2c_driver = { | ||
1340 | .driver = { | ||
1341 | .name = "ov14810uC", | ||
1342 | .owner = THIS_MODULE, | ||
1343 | }, | ||
1344 | .probe = ov14810_uC_probe, | ||
1345 | .remove = ov14810_uC_remove, | ||
1346 | .id_table = ov14810_uC_id, | ||
1347 | }; | ||
1348 | |||
1349 | static const struct i2c_device_id ov14810_slavedev_id[] = { | ||
1350 | { "ov14810SlaveDev", 0 }, | ||
1351 | { }, | ||
1352 | }; | ||
1353 | |||
1354 | MODULE_DEVICE_TABLE(i2c, ov14810_slavedev_id); | ||
1355 | |||
1356 | static struct i2c_driver ov14810_slavedev_i2c_driver = { | ||
1357 | .driver = { | ||
1358 | .name = "ov14810SlaveDev", | ||
1359 | .owner = THIS_MODULE, | ||
1360 | }, | ||
1361 | .probe = ov14810_slavedev_probe, | ||
1362 | .remove = ov14810_slavedev_remove, | ||
1363 | .id_table = ov14810_slavedev_id, | ||
1364 | }; | ||
1365 | |||
1366 | static int __init ov14810_init(void) | ||
1367 | { | ||
1368 | int ret; | ||
1369 | pr_info("ov14810 sensor driver loading\n"); | ||
1370 | ret = i2c_add_driver(&ov14810_i2c_driver); | ||
1371 | if (ret) | ||
1372 | return ret; | ||
1373 | |||
1374 | ret = i2c_add_driver(&ov14810_uC_i2c_driver); | ||
1375 | if (ret) | ||
1376 | return ret; | ||
1377 | |||
1378 | return i2c_add_driver(&ov14810_slavedev_i2c_driver); | ||
1379 | } | ||
1380 | |||
1381 | static void __exit ov14810_exit(void) | ||
1382 | { | ||
1383 | i2c_del_driver(&ov14810_slavedev_i2c_driver); | ||
1384 | i2c_del_driver(&ov14810_uC_i2c_driver); | ||
1385 | i2c_del_driver(&ov14810_i2c_driver); | ||
1386 | } | ||
1387 | |||
1388 | module_init(ov14810_init); | ||
1389 | module_exit(ov14810_exit); | ||
1390 | |||