1 /* Copyright (C) 2000-2009 Peter Selinger.
2 This file is part of ccrypt. It is free software and it is covered
3 by the GNU general public license. See the file COPYING for details. */
5 /* generated by maketables.c */
7 #include "ao_aes_int.h"
9 const word8x4 M0[4][256] = {
11 {{ 0, 0, 0, 0}}, {{ 2, 1, 1, 3}}, {{ 4, 2, 2, 6}},
12 {{ 6, 3, 3, 5}}, {{ 8, 4, 4, 12}}, {{ 10, 5, 5, 15}},
13 {{ 12, 6, 6, 10}}, {{ 14, 7, 7, 9}}, {{ 16, 8, 8, 24}},
14 {{ 18, 9, 9, 27}}, {{ 20, 10, 10, 30}}, {{ 22, 11, 11, 29}},
15 {{ 24, 12, 12, 20}}, {{ 26, 13, 13, 23}}, {{ 28, 14, 14, 18}},
16 {{ 30, 15, 15, 17}}, {{ 32, 16, 16, 48}}, {{ 34, 17, 17, 51}},
17 {{ 36, 18, 18, 54}}, {{ 38, 19, 19, 53}}, {{ 40, 20, 20, 60}},
18 {{ 42, 21, 21, 63}}, {{ 44, 22, 22, 58}}, {{ 46, 23, 23, 57}},
19 {{ 48, 24, 24, 40}}, {{ 50, 25, 25, 43}}, {{ 52, 26, 26, 46}},
20 {{ 54, 27, 27, 45}}, {{ 56, 28, 28, 36}}, {{ 58, 29, 29, 39}},
21 {{ 60, 30, 30, 34}}, {{ 62, 31, 31, 33}}, {{ 64, 32, 32, 96}},
22 {{ 66, 33, 33, 99}}, {{ 68, 34, 34, 102}}, {{ 70, 35, 35, 101}},
23 {{ 72, 36, 36, 108}}, {{ 74, 37, 37, 111}}, {{ 76, 38, 38, 106}},
24 {{ 78, 39, 39, 105}}, {{ 80, 40, 40, 120}}, {{ 82, 41, 41, 123}},
25 {{ 84, 42, 42, 126}}, {{ 86, 43, 43, 125}}, {{ 88, 44, 44, 116}},
26 {{ 90, 45, 45, 119}}, {{ 92, 46, 46, 114}}, {{ 94, 47, 47, 113}},
27 {{ 96, 48, 48, 80}}, {{ 98, 49, 49, 83}}, {{100, 50, 50, 86}},
28 {{102, 51, 51, 85}}, {{104, 52, 52, 92}}, {{106, 53, 53, 95}},
29 {{108, 54, 54, 90}}, {{110, 55, 55, 89}}, {{112, 56, 56, 72}},
30 {{114, 57, 57, 75}}, {{116, 58, 58, 78}}, {{118, 59, 59, 77}},
31 {{120, 60, 60, 68}}, {{122, 61, 61, 71}}, {{124, 62, 62, 66}},
32 {{126, 63, 63, 65}}, {{128, 64, 64, 192}}, {{130, 65, 65, 195}},
33 {{132, 66, 66, 198}}, {{134, 67, 67, 197}}, {{136, 68, 68, 204}},
34 {{138, 69, 69, 207}}, {{140, 70, 70, 202}}, {{142, 71, 71, 201}},
35 {{144, 72, 72, 216}}, {{146, 73, 73, 219}}, {{148, 74, 74, 222}},
36 {{150, 75, 75, 221}}, {{152, 76, 76, 212}}, {{154, 77, 77, 215}},
37 {{156, 78, 78, 210}}, {{158, 79, 79, 209}}, {{160, 80, 80, 240}},
38 {{162, 81, 81, 243}}, {{164, 82, 82, 246}}, {{166, 83, 83, 245}},
39 {{168, 84, 84, 252}}, {{170, 85, 85, 255}}, {{172, 86, 86, 250}},
40 {{174, 87, 87, 249}}, {{176, 88, 88, 232}}, {{178, 89, 89, 235}},
41 {{180, 90, 90, 238}}, {{182, 91, 91, 237}}, {{184, 92, 92, 228}},
42 {{186, 93, 93, 231}}, {{188, 94, 94, 226}}, {{190, 95, 95, 225}},
43 {{192, 96, 96, 160}}, {{194, 97, 97, 163}}, {{196, 98, 98, 166}},
44 {{198, 99, 99, 165}}, {{200, 100, 100, 172}}, {{202, 101, 101, 175}},
45 {{204, 102, 102, 170}}, {{206, 103, 103, 169}}, {{208, 104, 104, 184}},
46 {{210, 105, 105, 187}}, {{212, 106, 106, 190}}, {{214, 107, 107, 189}},
47 {{216, 108, 108, 180}}, {{218, 109, 109, 183}}, {{220, 110, 110, 178}},
48 {{222, 111, 111, 177}}, {{224, 112, 112, 144}}, {{226, 113, 113, 147}},
49 {{228, 114, 114, 150}}, {{230, 115, 115, 149}}, {{232, 116, 116, 156}},
50 {{234, 117, 117, 159}}, {{236, 118, 118, 154}}, {{238, 119, 119, 153}},
51 {{240, 120, 120, 136}}, {{242, 121, 121, 139}}, {{244, 122, 122, 142}},
52 {{246, 123, 123, 141}}, {{248, 124, 124, 132}}, {{250, 125, 125, 135}},
53 {{252, 126, 126, 130}}, {{254, 127, 127, 129}}, {{ 27, 128, 128, 155}},
54 {{ 25, 129, 129, 152}}, {{ 31, 130, 130, 157}}, {{ 29, 131, 131, 158}},
55 {{ 19, 132, 132, 151}}, {{ 17, 133, 133, 148}}, {{ 23, 134, 134, 145}},
56 {{ 21, 135, 135, 146}}, {{ 11, 136, 136, 131}}, {{ 9, 137, 137, 128}},
57 {{ 15, 138, 138, 133}}, {{ 13, 139, 139, 134}}, {{ 3, 140, 140, 143}},
58 {{ 1, 141, 141, 140}}, {{ 7, 142, 142, 137}}, {{ 5, 143, 143, 138}},
59 {{ 59, 144, 144, 171}}, {{ 57, 145, 145, 168}}, {{ 63, 146, 146, 173}},
60 {{ 61, 147, 147, 174}}, {{ 51, 148, 148, 167}}, {{ 49, 149, 149, 164}},
61 {{ 55, 150, 150, 161}}, {{ 53, 151, 151, 162}}, {{ 43, 152, 152, 179}},
62 {{ 41, 153, 153, 176}}, {{ 47, 154, 154, 181}}, {{ 45, 155, 155, 182}},
63 {{ 35, 156, 156, 191}}, {{ 33, 157, 157, 188}}, {{ 39, 158, 158, 185}},
64 {{ 37, 159, 159, 186}}, {{ 91, 160, 160, 251}}, {{ 89, 161, 161, 248}},
65 {{ 95, 162, 162, 253}}, {{ 93, 163, 163, 254}}, {{ 83, 164, 164, 247}},
66 {{ 81, 165, 165, 244}}, {{ 87, 166, 166, 241}}, {{ 85, 167, 167, 242}},
67 {{ 75, 168, 168, 227}}, {{ 73, 169, 169, 224}}, {{ 79, 170, 170, 229}},
68 {{ 77, 171, 171, 230}}, {{ 67, 172, 172, 239}}, {{ 65, 173, 173, 236}},
69 {{ 71, 174, 174, 233}}, {{ 69, 175, 175, 234}}, {{123, 176, 176, 203}},
70 {{121, 177, 177, 200}}, {{127, 178, 178, 205}}, {{125, 179, 179, 206}},
71 {{115, 180, 180, 199}}, {{113, 181, 181, 196}}, {{119, 182, 182, 193}},
72 {{117, 183, 183, 194}}, {{107, 184, 184, 211}}, {{105, 185, 185, 208}},
73 {{111, 186, 186, 213}}, {{109, 187, 187, 214}}, {{ 99, 188, 188, 223}},
74 {{ 97, 189, 189, 220}}, {{103, 190, 190, 217}}, {{101, 191, 191, 218}},
75 {{155, 192, 192, 91}}, {{153, 193, 193, 88}}, {{159, 194, 194, 93}},
76 {{157, 195, 195, 94}}, {{147, 196, 196, 87}}, {{145, 197, 197, 84}},
77 {{151, 198, 198, 81}}, {{149, 199, 199, 82}}, {{139, 200, 200, 67}},
78 {{137, 201, 201, 64}}, {{143, 202, 202, 69}}, {{141, 203, 203, 70}},
79 {{131, 204, 204, 79}}, {{129, 205, 205, 76}}, {{135, 206, 206, 73}},
80 {{133, 207, 207, 74}}, {{187, 208, 208, 107}}, {{185, 209, 209, 104}},
81 {{191, 210, 210, 109}}, {{189, 211, 211, 110}}, {{179, 212, 212, 103}},
82 {{177, 213, 213, 100}}, {{183, 214, 214, 97}}, {{181, 215, 215, 98}},
83 {{171, 216, 216, 115}}, {{169, 217, 217, 112}}, {{175, 218, 218, 117}},
84 {{173, 219, 219, 118}}, {{163, 220, 220, 127}}, {{161, 221, 221, 124}},
85 {{167, 222, 222, 121}}, {{165, 223, 223, 122}}, {{219, 224, 224, 59}},
86 {{217, 225, 225, 56}}, {{223, 226, 226, 61}}, {{221, 227, 227, 62}},
87 {{211, 228, 228, 55}}, {{209, 229, 229, 52}}, {{215, 230, 230, 49}},
88 {{213, 231, 231, 50}}, {{203, 232, 232, 35}}, {{201, 233, 233, 32}},
89 {{207, 234, 234, 37}}, {{205, 235, 235, 38}}, {{195, 236, 236, 47}},
90 {{193, 237, 237, 44}}, {{199, 238, 238, 41}}, {{197, 239, 239, 42}},
91 {{251, 240, 240, 11}}, {{249, 241, 241, 8}}, {{255, 242, 242, 13}},
92 {{253, 243, 243, 14}}, {{243, 244, 244, 7}}, {{241, 245, 245, 4}},
93 {{247, 246, 246, 1}}, {{245, 247, 247, 2}}, {{235, 248, 248, 19}},
94 {{233, 249, 249, 16}}, {{239, 250, 250, 21}}, {{237, 251, 251, 22}},
95 {{227, 252, 252, 31}}, {{225, 253, 253, 28}}, {{231, 254, 254, 25}},
96 {{229, 255, 255, 26}},
99 {{ 0, 0, 0, 0}}, {{ 3, 2, 1, 1}}, {{ 6, 4, 2, 2}},
100 {{ 5, 6, 3, 3}}, {{ 12, 8, 4, 4}}, {{ 15, 10, 5, 5}},
101 {{ 10, 12, 6, 6}}, {{ 9, 14, 7, 7}}, {{ 24, 16, 8, 8}},
102 {{ 27, 18, 9, 9}}, {{ 30, 20, 10, 10}}, {{ 29, 22, 11, 11}},
103 {{ 20, 24, 12, 12}}, {{ 23, 26, 13, 13}}, {{ 18, 28, 14, 14}},
104 {{ 17, 30, 15, 15}}, {{ 48, 32, 16, 16}}, {{ 51, 34, 17, 17}},
105 {{ 54, 36, 18, 18}}, {{ 53, 38, 19, 19}}, {{ 60, 40, 20, 20}},
106 {{ 63, 42, 21, 21}}, {{ 58, 44, 22, 22}}, {{ 57, 46, 23, 23}},
107 {{ 40, 48, 24, 24}}, {{ 43, 50, 25, 25}}, {{ 46, 52, 26, 26}},
108 {{ 45, 54, 27, 27}}, {{ 36, 56, 28, 28}}, {{ 39, 58, 29, 29}},
109 {{ 34, 60, 30, 30}}, {{ 33, 62, 31, 31}}, {{ 96, 64, 32, 32}},
110 {{ 99, 66, 33, 33}}, {{102, 68, 34, 34}}, {{101, 70, 35, 35}},
111 {{108, 72, 36, 36}}, {{111, 74, 37, 37}}, {{106, 76, 38, 38}},
112 {{105, 78, 39, 39}}, {{120, 80, 40, 40}}, {{123, 82, 41, 41}},
113 {{126, 84, 42, 42}}, {{125, 86, 43, 43}}, {{116, 88, 44, 44}},
114 {{119, 90, 45, 45}}, {{114, 92, 46, 46}}, {{113, 94, 47, 47}},
115 {{ 80, 96, 48, 48}}, {{ 83, 98, 49, 49}}, {{ 86, 100, 50, 50}},
116 {{ 85, 102, 51, 51}}, {{ 92, 104, 52, 52}}, {{ 95, 106, 53, 53}},
117 {{ 90, 108, 54, 54}}, {{ 89, 110, 55, 55}}, {{ 72, 112, 56, 56}},
118 {{ 75, 114, 57, 57}}, {{ 78, 116, 58, 58}}, {{ 77, 118, 59, 59}},
119 {{ 68, 120, 60, 60}}, {{ 71, 122, 61, 61}}, {{ 66, 124, 62, 62}},
120 {{ 65, 126, 63, 63}}, {{192, 128, 64, 64}}, {{195, 130, 65, 65}},
121 {{198, 132, 66, 66}}, {{197, 134, 67, 67}}, {{204, 136, 68, 68}},
122 {{207, 138, 69, 69}}, {{202, 140, 70, 70}}, {{201, 142, 71, 71}},
123 {{216, 144, 72, 72}}, {{219, 146, 73, 73}}, {{222, 148, 74, 74}},
124 {{221, 150, 75, 75}}, {{212, 152, 76, 76}}, {{215, 154, 77, 77}},
125 {{210, 156, 78, 78}}, {{209, 158, 79, 79}}, {{240, 160, 80, 80}},
126 {{243, 162, 81, 81}}, {{246, 164, 82, 82}}, {{245, 166, 83, 83}},
127 {{252, 168, 84, 84}}, {{255, 170, 85, 85}}, {{250, 172, 86, 86}},
128 {{249, 174, 87, 87}}, {{232, 176, 88, 88}}, {{235, 178, 89, 89}},
129 {{238, 180, 90, 90}}, {{237, 182, 91, 91}}, {{228, 184, 92, 92}},
130 {{231, 186, 93, 93}}, {{226, 188, 94, 94}}, {{225, 190, 95, 95}},
131 {{160, 192, 96, 96}}, {{163, 194, 97, 97}}, {{166, 196, 98, 98}},
132 {{165, 198, 99, 99}}, {{172, 200, 100, 100}}, {{175, 202, 101, 101}},
133 {{170, 204, 102, 102}}, {{169, 206, 103, 103}}, {{184, 208, 104, 104}},
134 {{187, 210, 105, 105}}, {{190, 212, 106, 106}}, {{189, 214, 107, 107}},
135 {{180, 216, 108, 108}}, {{183, 218, 109, 109}}, {{178, 220, 110, 110}},
136 {{177, 222, 111, 111}}, {{144, 224, 112, 112}}, {{147, 226, 113, 113}},
137 {{150, 228, 114, 114}}, {{149, 230, 115, 115}}, {{156, 232, 116, 116}},
138 {{159, 234, 117, 117}}, {{154, 236, 118, 118}}, {{153, 238, 119, 119}},
139 {{136, 240, 120, 120}}, {{139, 242, 121, 121}}, {{142, 244, 122, 122}},
140 {{141, 246, 123, 123}}, {{132, 248, 124, 124}}, {{135, 250, 125, 125}},
141 {{130, 252, 126, 126}}, {{129, 254, 127, 127}}, {{155, 27, 128, 128}},
142 {{152, 25, 129, 129}}, {{157, 31, 130, 130}}, {{158, 29, 131, 131}},
143 {{151, 19, 132, 132}}, {{148, 17, 133, 133}}, {{145, 23, 134, 134}},
144 {{146, 21, 135, 135}}, {{131, 11, 136, 136}}, {{128, 9, 137, 137}},
145 {{133, 15, 138, 138}}, {{134, 13, 139, 139}}, {{143, 3, 140, 140}},
146 {{140, 1, 141, 141}}, {{137, 7, 142, 142}}, {{138, 5, 143, 143}},
147 {{171, 59, 144, 144}}, {{168, 57, 145, 145}}, {{173, 63, 146, 146}},
148 {{174, 61, 147, 147}}, {{167, 51, 148, 148}}, {{164, 49, 149, 149}},
149 {{161, 55, 150, 150}}, {{162, 53, 151, 151}}, {{179, 43, 152, 152}},
150 {{176, 41, 153, 153}}, {{181, 47, 154, 154}}, {{182, 45, 155, 155}},
151 {{191, 35, 156, 156}}, {{188, 33, 157, 157}}, {{185, 39, 158, 158}},
152 {{186, 37, 159, 159}}, {{251, 91, 160, 160}}, {{248, 89, 161, 161}},
153 {{253, 95, 162, 162}}, {{254, 93, 163, 163}}, {{247, 83, 164, 164}},
154 {{244, 81, 165, 165}}, {{241, 87, 166, 166}}, {{242, 85, 167, 167}},
155 {{227, 75, 168, 168}}, {{224, 73, 169, 169}}, {{229, 79, 170, 170}},
156 {{230, 77, 171, 171}}, {{239, 67, 172, 172}}, {{236, 65, 173, 173}},
157 {{233, 71, 174, 174}}, {{234, 69, 175, 175}}, {{203, 123, 176, 176}},
158 {{200, 121, 177, 177}}, {{205, 127, 178, 178}}, {{206, 125, 179, 179}},
159 {{199, 115, 180, 180}}, {{196, 113, 181, 181}}, {{193, 119, 182, 182}},
160 {{194, 117, 183, 183}}, {{211, 107, 184, 184}}, {{208, 105, 185, 185}},
161 {{213, 111, 186, 186}}, {{214, 109, 187, 187}}, {{223, 99, 188, 188}},
162 {{220, 97, 189, 189}}, {{217, 103, 190, 190}}, {{218, 101, 191, 191}},
163 {{ 91, 155, 192, 192}}, {{ 88, 153, 193, 193}}, {{ 93, 159, 194, 194}},
164 {{ 94, 157, 195, 195}}, {{ 87, 147, 196, 196}}, {{ 84, 145, 197, 197}},
165 {{ 81, 151, 198, 198}}, {{ 82, 149, 199, 199}}, {{ 67, 139, 200, 200}},
166 {{ 64, 137, 201, 201}}, {{ 69, 143, 202, 202}}, {{ 70, 141, 203, 203}},
167 {{ 79, 131, 204, 204}}, {{ 76, 129, 205, 205}}, {{ 73, 135, 206, 206}},
168 {{ 74, 133, 207, 207}}, {{107, 187, 208, 208}}, {{104, 185, 209, 209}},
169 {{109, 191, 210, 210}}, {{110, 189, 211, 211}}, {{103, 179, 212, 212}},
170 {{100, 177, 213, 213}}, {{ 97, 183, 214, 214}}, {{ 98, 181, 215, 215}},
171 {{115, 171, 216, 216}}, {{112, 169, 217, 217}}, {{117, 175, 218, 218}},
172 {{118, 173, 219, 219}}, {{127, 163, 220, 220}}, {{124, 161, 221, 221}},
173 {{121, 167, 222, 222}}, {{122, 165, 223, 223}}, {{ 59, 219, 224, 224}},
174 {{ 56, 217, 225, 225}}, {{ 61, 223, 226, 226}}, {{ 62, 221, 227, 227}},
175 {{ 55, 211, 228, 228}}, {{ 52, 209, 229, 229}}, {{ 49, 215, 230, 230}},
176 {{ 50, 213, 231, 231}}, {{ 35, 203, 232, 232}}, {{ 32, 201, 233, 233}},
177 {{ 37, 207, 234, 234}}, {{ 38, 205, 235, 235}}, {{ 47, 195, 236, 236}},
178 {{ 44, 193, 237, 237}}, {{ 41, 199, 238, 238}}, {{ 42, 197, 239, 239}},
179 {{ 11, 251, 240, 240}}, {{ 8, 249, 241, 241}}, {{ 13, 255, 242, 242}},
180 {{ 14, 253, 243, 243}}, {{ 7, 243, 244, 244}}, {{ 4, 241, 245, 245}},
181 {{ 1, 247, 246, 246}}, {{ 2, 245, 247, 247}}, {{ 19, 235, 248, 248}},
182 {{ 16, 233, 249, 249}}, {{ 21, 239, 250, 250}}, {{ 22, 237, 251, 251}},
183 {{ 31, 227, 252, 252}}, {{ 28, 225, 253, 253}}, {{ 25, 231, 254, 254}},
184 {{ 26, 229, 255, 255}},
187 {{ 0, 0, 0, 0}}, {{ 1, 3, 2, 1}}, {{ 2, 6, 4, 2}},
188 {{ 3, 5, 6, 3}}, {{ 4, 12, 8, 4}}, {{ 5, 15, 10, 5}},
189 {{ 6, 10, 12, 6}}, {{ 7, 9, 14, 7}}, {{ 8, 24, 16, 8}},
190 {{ 9, 27, 18, 9}}, {{ 10, 30, 20, 10}}, {{ 11, 29, 22, 11}},
191 {{ 12, 20, 24, 12}}, {{ 13, 23, 26, 13}}, {{ 14, 18, 28, 14}},
192 {{ 15, 17, 30, 15}}, {{ 16, 48, 32, 16}}, {{ 17, 51, 34, 17}},
193 {{ 18, 54, 36, 18}}, {{ 19, 53, 38, 19}}, {{ 20, 60, 40, 20}},
194 {{ 21, 63, 42, 21}}, {{ 22, 58, 44, 22}}, {{ 23, 57, 46, 23}},
195 {{ 24, 40, 48, 24}}, {{ 25, 43, 50, 25}}, {{ 26, 46, 52, 26}},
196 {{ 27, 45, 54, 27}}, {{ 28, 36, 56, 28}}, {{ 29, 39, 58, 29}},
197 {{ 30, 34, 60, 30}}, {{ 31, 33, 62, 31}}, {{ 32, 96, 64, 32}},
198 {{ 33, 99, 66, 33}}, {{ 34, 102, 68, 34}}, {{ 35, 101, 70, 35}},
199 {{ 36, 108, 72, 36}}, {{ 37, 111, 74, 37}}, {{ 38, 106, 76, 38}},
200 {{ 39, 105, 78, 39}}, {{ 40, 120, 80, 40}}, {{ 41, 123, 82, 41}},
201 {{ 42, 126, 84, 42}}, {{ 43, 125, 86, 43}}, {{ 44, 116, 88, 44}},
202 {{ 45, 119, 90, 45}}, {{ 46, 114, 92, 46}}, {{ 47, 113, 94, 47}},
203 {{ 48, 80, 96, 48}}, {{ 49, 83, 98, 49}}, {{ 50, 86, 100, 50}},
204 {{ 51, 85, 102, 51}}, {{ 52, 92, 104, 52}}, {{ 53, 95, 106, 53}},
205 {{ 54, 90, 108, 54}}, {{ 55, 89, 110, 55}}, {{ 56, 72, 112, 56}},
206 {{ 57, 75, 114, 57}}, {{ 58, 78, 116, 58}}, {{ 59, 77, 118, 59}},
207 {{ 60, 68, 120, 60}}, {{ 61, 71, 122, 61}}, {{ 62, 66, 124, 62}},
208 {{ 63, 65, 126, 63}}, {{ 64, 192, 128, 64}}, {{ 65, 195, 130, 65}},
209 {{ 66, 198, 132, 66}}, {{ 67, 197, 134, 67}}, {{ 68, 204, 136, 68}},
210 {{ 69, 207, 138, 69}}, {{ 70, 202, 140, 70}}, {{ 71, 201, 142, 71}},
211 {{ 72, 216, 144, 72}}, {{ 73, 219, 146, 73}}, {{ 74, 222, 148, 74}},
212 {{ 75, 221, 150, 75}}, {{ 76, 212, 152, 76}}, {{ 77, 215, 154, 77}},
213 {{ 78, 210, 156, 78}}, {{ 79, 209, 158, 79}}, {{ 80, 240, 160, 80}},
214 {{ 81, 243, 162, 81}}, {{ 82, 246, 164, 82}}, {{ 83, 245, 166, 83}},
215 {{ 84, 252, 168, 84}}, {{ 85, 255, 170, 85}}, {{ 86, 250, 172, 86}},
216 {{ 87, 249, 174, 87}}, {{ 88, 232, 176, 88}}, {{ 89, 235, 178, 89}},
217 {{ 90, 238, 180, 90}}, {{ 91, 237, 182, 91}}, {{ 92, 228, 184, 92}},
218 {{ 93, 231, 186, 93}}, {{ 94, 226, 188, 94}}, {{ 95, 225, 190, 95}},
219 {{ 96, 160, 192, 96}}, {{ 97, 163, 194, 97}}, {{ 98, 166, 196, 98}},
220 {{ 99, 165, 198, 99}}, {{100, 172, 200, 100}}, {{101, 175, 202, 101}},
221 {{102, 170, 204, 102}}, {{103, 169, 206, 103}}, {{104, 184, 208, 104}},
222 {{105, 187, 210, 105}}, {{106, 190, 212, 106}}, {{107, 189, 214, 107}},
223 {{108, 180, 216, 108}}, {{109, 183, 218, 109}}, {{110, 178, 220, 110}},
224 {{111, 177, 222, 111}}, {{112, 144, 224, 112}}, {{113, 147, 226, 113}},
225 {{114, 150, 228, 114}}, {{115, 149, 230, 115}}, {{116, 156, 232, 116}},
226 {{117, 159, 234, 117}}, {{118, 154, 236, 118}}, {{119, 153, 238, 119}},
227 {{120, 136, 240, 120}}, {{121, 139, 242, 121}}, {{122, 142, 244, 122}},
228 {{123, 141, 246, 123}}, {{124, 132, 248, 124}}, {{125, 135, 250, 125}},
229 {{126, 130, 252, 126}}, {{127, 129, 254, 127}}, {{128, 155, 27, 128}},
230 {{129, 152, 25, 129}}, {{130, 157, 31, 130}}, {{131, 158, 29, 131}},
231 {{132, 151, 19, 132}}, {{133, 148, 17, 133}}, {{134, 145, 23, 134}},
232 {{135, 146, 21, 135}}, {{136, 131, 11, 136}}, {{137, 128, 9, 137}},
233 {{138, 133, 15, 138}}, {{139, 134, 13, 139}}, {{140, 143, 3, 140}},
234 {{141, 140, 1, 141}}, {{142, 137, 7, 142}}, {{143, 138, 5, 143}},
235 {{144, 171, 59, 144}}, {{145, 168, 57, 145}}, {{146, 173, 63, 146}},
236 {{147, 174, 61, 147}}, {{148, 167, 51, 148}}, {{149, 164, 49, 149}},
237 {{150, 161, 55, 150}}, {{151, 162, 53, 151}}, {{152, 179, 43, 152}},
238 {{153, 176, 41, 153}}, {{154, 181, 47, 154}}, {{155, 182, 45, 155}},
239 {{156, 191, 35, 156}}, {{157, 188, 33, 157}}, {{158, 185, 39, 158}},
240 {{159, 186, 37, 159}}, {{160, 251, 91, 160}}, {{161, 248, 89, 161}},
241 {{162, 253, 95, 162}}, {{163, 254, 93, 163}}, {{164, 247, 83, 164}},
242 {{165, 244, 81, 165}}, {{166, 241, 87, 166}}, {{167, 242, 85, 167}},
243 {{168, 227, 75, 168}}, {{169, 224, 73, 169}}, {{170, 229, 79, 170}},
244 {{171, 230, 77, 171}}, {{172, 239, 67, 172}}, {{173, 236, 65, 173}},
245 {{174, 233, 71, 174}}, {{175, 234, 69, 175}}, {{176, 203, 123, 176}},
246 {{177, 200, 121, 177}}, {{178, 205, 127, 178}}, {{179, 206, 125, 179}},
247 {{180, 199, 115, 180}}, {{181, 196, 113, 181}}, {{182, 193, 119, 182}},
248 {{183, 194, 117, 183}}, {{184, 211, 107, 184}}, {{185, 208, 105, 185}},
249 {{186, 213, 111, 186}}, {{187, 214, 109, 187}}, {{188, 223, 99, 188}},
250 {{189, 220, 97, 189}}, {{190, 217, 103, 190}}, {{191, 218, 101, 191}},
251 {{192, 91, 155, 192}}, {{193, 88, 153, 193}}, {{194, 93, 159, 194}},
252 {{195, 94, 157, 195}}, {{196, 87, 147, 196}}, {{197, 84, 145, 197}},
253 {{198, 81, 151, 198}}, {{199, 82, 149, 199}}, {{200, 67, 139, 200}},
254 {{201, 64, 137, 201}}, {{202, 69, 143, 202}}, {{203, 70, 141, 203}},
255 {{204, 79, 131, 204}}, {{205, 76, 129, 205}}, {{206, 73, 135, 206}},
256 {{207, 74, 133, 207}}, {{208, 107, 187, 208}}, {{209, 104, 185, 209}},
257 {{210, 109, 191, 210}}, {{211, 110, 189, 211}}, {{212, 103, 179, 212}},
258 {{213, 100, 177, 213}}, {{214, 97, 183, 214}}, {{215, 98, 181, 215}},
259 {{216, 115, 171, 216}}, {{217, 112, 169, 217}}, {{218, 117, 175, 218}},
260 {{219, 118, 173, 219}}, {{220, 127, 163, 220}}, {{221, 124, 161, 221}},
261 {{222, 121, 167, 222}}, {{223, 122, 165, 223}}, {{224, 59, 219, 224}},
262 {{225, 56, 217, 225}}, {{226, 61, 223, 226}}, {{227, 62, 221, 227}},
263 {{228, 55, 211, 228}}, {{229, 52, 209, 229}}, {{230, 49, 215, 230}},
264 {{231, 50, 213, 231}}, {{232, 35, 203, 232}}, {{233, 32, 201, 233}},
265 {{234, 37, 207, 234}}, {{235, 38, 205, 235}}, {{236, 47, 195, 236}},
266 {{237, 44, 193, 237}}, {{238, 41, 199, 238}}, {{239, 42, 197, 239}},
267 {{240, 11, 251, 240}}, {{241, 8, 249, 241}}, {{242, 13, 255, 242}},
268 {{243, 14, 253, 243}}, {{244, 7, 243, 244}}, {{245, 4, 241, 245}},
269 {{246, 1, 247, 246}}, {{247, 2, 245, 247}}, {{248, 19, 235, 248}},
270 {{249, 16, 233, 249}}, {{250, 21, 239, 250}}, {{251, 22, 237, 251}},
271 {{252, 31, 227, 252}}, {{253, 28, 225, 253}}, {{254, 25, 231, 254}},
272 {{255, 26, 229, 255}},
275 {{ 0, 0, 0, 0}}, {{ 1, 1, 3, 2}}, {{ 2, 2, 6, 4}},
276 {{ 3, 3, 5, 6}}, {{ 4, 4, 12, 8}}, {{ 5, 5, 15, 10}},
277 {{ 6, 6, 10, 12}}, {{ 7, 7, 9, 14}}, {{ 8, 8, 24, 16}},
278 {{ 9, 9, 27, 18}}, {{ 10, 10, 30, 20}}, {{ 11, 11, 29, 22}},
279 {{ 12, 12, 20, 24}}, {{ 13, 13, 23, 26}}, {{ 14, 14, 18, 28}},
280 {{ 15, 15, 17, 30}}, {{ 16, 16, 48, 32}}, {{ 17, 17, 51, 34}},
281 {{ 18, 18, 54, 36}}, {{ 19, 19, 53, 38}}, {{ 20, 20, 60, 40}},
282 {{ 21, 21, 63, 42}}, {{ 22, 22, 58, 44}}, {{ 23, 23, 57, 46}},
283 {{ 24, 24, 40, 48}}, {{ 25, 25, 43, 50}}, {{ 26, 26, 46, 52}},
284 {{ 27, 27, 45, 54}}, {{ 28, 28, 36, 56}}, {{ 29, 29, 39, 58}},
285 {{ 30, 30, 34, 60}}, {{ 31, 31, 33, 62}}, {{ 32, 32, 96, 64}},
286 {{ 33, 33, 99, 66}}, {{ 34, 34, 102, 68}}, {{ 35, 35, 101, 70}},
287 {{ 36, 36, 108, 72}}, {{ 37, 37, 111, 74}}, {{ 38, 38, 106, 76}},
288 {{ 39, 39, 105, 78}}, {{ 40, 40, 120, 80}}, {{ 41, 41, 123, 82}},
289 {{ 42, 42, 126, 84}}, {{ 43, 43, 125, 86}}, {{ 44, 44, 116, 88}},
290 {{ 45, 45, 119, 90}}, {{ 46, 46, 114, 92}}, {{ 47, 47, 113, 94}},
291 {{ 48, 48, 80, 96}}, {{ 49, 49, 83, 98}}, {{ 50, 50, 86, 100}},
292 {{ 51, 51, 85, 102}}, {{ 52, 52, 92, 104}}, {{ 53, 53, 95, 106}},
293 {{ 54, 54, 90, 108}}, {{ 55, 55, 89, 110}}, {{ 56, 56, 72, 112}},
294 {{ 57, 57, 75, 114}}, {{ 58, 58, 78, 116}}, {{ 59, 59, 77, 118}},
295 {{ 60, 60, 68, 120}}, {{ 61, 61, 71, 122}}, {{ 62, 62, 66, 124}},
296 {{ 63, 63, 65, 126}}, {{ 64, 64, 192, 128}}, {{ 65, 65, 195, 130}},
297 {{ 66, 66, 198, 132}}, {{ 67, 67, 197, 134}}, {{ 68, 68, 204, 136}},
298 {{ 69, 69, 207, 138}}, {{ 70, 70, 202, 140}}, {{ 71, 71, 201, 142}},
299 {{ 72, 72, 216, 144}}, {{ 73, 73, 219, 146}}, {{ 74, 74, 222, 148}},
300 {{ 75, 75, 221, 150}}, {{ 76, 76, 212, 152}}, {{ 77, 77, 215, 154}},
301 {{ 78, 78, 210, 156}}, {{ 79, 79, 209, 158}}, {{ 80, 80, 240, 160}},
302 {{ 81, 81, 243, 162}}, {{ 82, 82, 246, 164}}, {{ 83, 83, 245, 166}},
303 {{ 84, 84, 252, 168}}, {{ 85, 85, 255, 170}}, {{ 86, 86, 250, 172}},
304 {{ 87, 87, 249, 174}}, {{ 88, 88, 232, 176}}, {{ 89, 89, 235, 178}},
305 {{ 90, 90, 238, 180}}, {{ 91, 91, 237, 182}}, {{ 92, 92, 228, 184}},
306 {{ 93, 93, 231, 186}}, {{ 94, 94, 226, 188}}, {{ 95, 95, 225, 190}},
307 {{ 96, 96, 160, 192}}, {{ 97, 97, 163, 194}}, {{ 98, 98, 166, 196}},
308 {{ 99, 99, 165, 198}}, {{100, 100, 172, 200}}, {{101, 101, 175, 202}},
309 {{102, 102, 170, 204}}, {{103, 103, 169, 206}}, {{104, 104, 184, 208}},
310 {{105, 105, 187, 210}}, {{106, 106, 190, 212}}, {{107, 107, 189, 214}},
311 {{108, 108, 180, 216}}, {{109, 109, 183, 218}}, {{110, 110, 178, 220}},
312 {{111, 111, 177, 222}}, {{112, 112, 144, 224}}, {{113, 113, 147, 226}},
313 {{114, 114, 150, 228}}, {{115, 115, 149, 230}}, {{116, 116, 156, 232}},
314 {{117, 117, 159, 234}}, {{118, 118, 154, 236}}, {{119, 119, 153, 238}},
315 {{120, 120, 136, 240}}, {{121, 121, 139, 242}}, {{122, 122, 142, 244}},
316 {{123, 123, 141, 246}}, {{124, 124, 132, 248}}, {{125, 125, 135, 250}},
317 {{126, 126, 130, 252}}, {{127, 127, 129, 254}}, {{128, 128, 155, 27}},
318 {{129, 129, 152, 25}}, {{130, 130, 157, 31}}, {{131, 131, 158, 29}},
319 {{132, 132, 151, 19}}, {{133, 133, 148, 17}}, {{134, 134, 145, 23}},
320 {{135, 135, 146, 21}}, {{136, 136, 131, 11}}, {{137, 137, 128, 9}},
321 {{138, 138, 133, 15}}, {{139, 139, 134, 13}}, {{140, 140, 143, 3}},
322 {{141, 141, 140, 1}}, {{142, 142, 137, 7}}, {{143, 143, 138, 5}},
323 {{144, 144, 171, 59}}, {{145, 145, 168, 57}}, {{146, 146, 173, 63}},
324 {{147, 147, 174, 61}}, {{148, 148, 167, 51}}, {{149, 149, 164, 49}},
325 {{150, 150, 161, 55}}, {{151, 151, 162, 53}}, {{152, 152, 179, 43}},
326 {{153, 153, 176, 41}}, {{154, 154, 181, 47}}, {{155, 155, 182, 45}},
327 {{156, 156, 191, 35}}, {{157, 157, 188, 33}}, {{158, 158, 185, 39}},
328 {{159, 159, 186, 37}}, {{160, 160, 251, 91}}, {{161, 161, 248, 89}},
329 {{162, 162, 253, 95}}, {{163, 163, 254, 93}}, {{164, 164, 247, 83}},
330 {{165, 165, 244, 81}}, {{166, 166, 241, 87}}, {{167, 167, 242, 85}},
331 {{168, 168, 227, 75}}, {{169, 169, 224, 73}}, {{170, 170, 229, 79}},
332 {{171, 171, 230, 77}}, {{172, 172, 239, 67}}, {{173, 173, 236, 65}},
333 {{174, 174, 233, 71}}, {{175, 175, 234, 69}}, {{176, 176, 203, 123}},
334 {{177, 177, 200, 121}}, {{178, 178, 205, 127}}, {{179, 179, 206, 125}},
335 {{180, 180, 199, 115}}, {{181, 181, 196, 113}}, {{182, 182, 193, 119}},
336 {{183, 183, 194, 117}}, {{184, 184, 211, 107}}, {{185, 185, 208, 105}},
337 {{186, 186, 213, 111}}, {{187, 187, 214, 109}}, {{188, 188, 223, 99}},
338 {{189, 189, 220, 97}}, {{190, 190, 217, 103}}, {{191, 191, 218, 101}},
339 {{192, 192, 91, 155}}, {{193, 193, 88, 153}}, {{194, 194, 93, 159}},
340 {{195, 195, 94, 157}}, {{196, 196, 87, 147}}, {{197, 197, 84, 145}},
341 {{198, 198, 81, 151}}, {{199, 199, 82, 149}}, {{200, 200, 67, 139}},
342 {{201, 201, 64, 137}}, {{202, 202, 69, 143}}, {{203, 203, 70, 141}},
343 {{204, 204, 79, 131}}, {{205, 205, 76, 129}}, {{206, 206, 73, 135}},
344 {{207, 207, 74, 133}}, {{208, 208, 107, 187}}, {{209, 209, 104, 185}},
345 {{210, 210, 109, 191}}, {{211, 211, 110, 189}}, {{212, 212, 103, 179}},
346 {{213, 213, 100, 177}}, {{214, 214, 97, 183}}, {{215, 215, 98, 181}},
347 {{216, 216, 115, 171}}, {{217, 217, 112, 169}}, {{218, 218, 117, 175}},
348 {{219, 219, 118, 173}}, {{220, 220, 127, 163}}, {{221, 221, 124, 161}},
349 {{222, 222, 121, 167}}, {{223, 223, 122, 165}}, {{224, 224, 59, 219}},
350 {{225, 225, 56, 217}}, {{226, 226, 61, 223}}, {{227, 227, 62, 221}},
351 {{228, 228, 55, 211}}, {{229, 229, 52, 209}}, {{230, 230, 49, 215}},
352 {{231, 231, 50, 213}}, {{232, 232, 35, 203}}, {{233, 233, 32, 201}},
353 {{234, 234, 37, 207}}, {{235, 235, 38, 205}}, {{236, 236, 47, 195}},
354 {{237, 237, 44, 193}}, {{238, 238, 41, 199}}, {{239, 239, 42, 197}},
355 {{240, 240, 11, 251}}, {{241, 241, 8, 249}}, {{242, 242, 13, 255}},
356 {{243, 243, 14, 253}}, {{244, 244, 7, 243}}, {{245, 245, 4, 241}},
357 {{246, 246, 1, 247}}, {{247, 247, 2, 245}}, {{248, 248, 19, 235}},
358 {{249, 249, 16, 233}}, {{250, 250, 21, 239}}, {{251, 251, 22, 237}},
359 {{252, 252, 31, 227}}, {{253, 253, 28, 225}}, {{254, 254, 25, 231}},
360 {{255, 255, 26, 229}},
364 const word8x4 M1[4][256] = {
366 {{ 0, 0, 0, 0}}, {{ 14, 9, 13, 11}}, {{ 28, 18, 26, 22}},
367 {{ 18, 27, 23, 29}}, {{ 56, 36, 52, 44}}, {{ 54, 45, 57, 39}},
368 {{ 36, 54, 46, 58}}, {{ 42, 63, 35, 49}}, {{112, 72, 104, 88}},
369 {{126, 65, 101, 83}}, {{108, 90, 114, 78}}, {{ 98, 83, 127, 69}},
370 {{ 72, 108, 92, 116}}, {{ 70, 101, 81, 127}}, {{ 84, 126, 70, 98}},
371 {{ 90, 119, 75, 105}}, {{224, 144, 208, 176}}, {{238, 153, 221, 187}},
372 {{252, 130, 202, 166}}, {{242, 139, 199, 173}}, {{216, 180, 228, 156}},
373 {{214, 189, 233, 151}}, {{196, 166, 254, 138}}, {{202, 175, 243, 129}},
374 {{144, 216, 184, 232}}, {{158, 209, 181, 227}}, {{140, 202, 162, 254}},
375 {{130, 195, 175, 245}}, {{168, 252, 140, 196}}, {{166, 245, 129, 207}},
376 {{180, 238, 150, 210}}, {{186, 231, 155, 217}}, {{219, 59, 187, 123}},
377 {{213, 50, 182, 112}}, {{199, 41, 161, 109}}, {{201, 32, 172, 102}},
378 {{227, 31, 143, 87}}, {{237, 22, 130, 92}}, {{255, 13, 149, 65}},
379 {{241, 4, 152, 74}}, {{171, 115, 211, 35}}, {{165, 122, 222, 40}},
380 {{183, 97, 201, 53}}, {{185, 104, 196, 62}}, {{147, 87, 231, 15}},
381 {{157, 94, 234, 4}}, {{143, 69, 253, 25}}, {{129, 76, 240, 18}},
382 {{ 59, 171, 107, 203}}, {{ 53, 162, 102, 192}}, {{ 39, 185, 113, 221}},
383 {{ 41, 176, 124, 214}}, {{ 3, 143, 95, 231}}, {{ 13, 134, 82, 236}},
384 {{ 31, 157, 69, 241}}, {{ 17, 148, 72, 250}}, {{ 75, 227, 3, 147}},
385 {{ 69, 234, 14, 152}}, {{ 87, 241, 25, 133}}, {{ 89, 248, 20, 142}},
386 {{115, 199, 55, 191}}, {{125, 206, 58, 180}}, {{111, 213, 45, 169}},
387 {{ 97, 220, 32, 162}}, {{173, 118, 109, 246}}, {{163, 127, 96, 253}},
388 {{177, 100, 119, 224}}, {{191, 109, 122, 235}}, {{149, 82, 89, 218}},
389 {{155, 91, 84, 209}}, {{137, 64, 67, 204}}, {{135, 73, 78, 199}},
390 {{221, 62, 5, 174}}, {{211, 55, 8, 165}}, {{193, 44, 31, 184}},
391 {{207, 37, 18, 179}}, {{229, 26, 49, 130}}, {{235, 19, 60, 137}},
392 {{249, 8, 43, 148}}, {{247, 1, 38, 159}}, {{ 77, 230, 189, 70}},
393 {{ 67, 239, 176, 77}}, {{ 81, 244, 167, 80}}, {{ 95, 253, 170, 91}},
394 {{117, 194, 137, 106}}, {{123, 203, 132, 97}}, {{105, 208, 147, 124}},
395 {{103, 217, 158, 119}}, {{ 61, 174, 213, 30}}, {{ 51, 167, 216, 21}},
396 {{ 33, 188, 207, 8}}, {{ 47, 181, 194, 3}}, {{ 5, 138, 225, 50}},
397 {{ 11, 131, 236, 57}}, {{ 25, 152, 251, 36}}, {{ 23, 145, 246, 47}},
398 {{118, 77, 214, 141}}, {{120, 68, 219, 134}}, {{106, 95, 204, 155}},
399 {{100, 86, 193, 144}}, {{ 78, 105, 226, 161}}, {{ 64, 96, 239, 170}},
400 {{ 82, 123, 248, 183}}, {{ 92, 114, 245, 188}}, {{ 6, 5, 190, 213}},
401 {{ 8, 12, 179, 222}}, {{ 26, 23, 164, 195}}, {{ 20, 30, 169, 200}},
402 {{ 62, 33, 138, 249}}, {{ 48, 40, 135, 242}}, {{ 34, 51, 144, 239}},
403 {{ 44, 58, 157, 228}}, {{150, 221, 6, 61}}, {{152, 212, 11, 54}},
404 {{138, 207, 28, 43}}, {{132, 198, 17, 32}}, {{174, 249, 50, 17}},
405 {{160, 240, 63, 26}}, {{178, 235, 40, 7}}, {{188, 226, 37, 12}},
406 {{230, 149, 110, 101}}, {{232, 156, 99, 110}}, {{250, 135, 116, 115}},
407 {{244, 142, 121, 120}}, {{222, 177, 90, 73}}, {{208, 184, 87, 66}},
408 {{194, 163, 64, 95}}, {{204, 170, 77, 84}}, {{ 65, 236, 218, 247}},
409 {{ 79, 229, 215, 252}}, {{ 93, 254, 192, 225}}, {{ 83, 247, 205, 234}},
410 {{121, 200, 238, 219}}, {{119, 193, 227, 208}}, {{101, 218, 244, 205}},
411 {{107, 211, 249, 198}}, {{ 49, 164, 178, 175}}, {{ 63, 173, 191, 164}},
412 {{ 45, 182, 168, 185}}, {{ 35, 191, 165, 178}}, {{ 9, 128, 134, 131}},
413 {{ 7, 137, 139, 136}}, {{ 21, 146, 156, 149}}, {{ 27, 155, 145, 158}},
414 {{161, 124, 10, 71}}, {{175, 117, 7, 76}}, {{189, 110, 16, 81}},
415 {{179, 103, 29, 90}}, {{153, 88, 62, 107}}, {{151, 81, 51, 96}},
416 {{133, 74, 36, 125}}, {{139, 67, 41, 118}}, {{209, 52, 98, 31}},
417 {{223, 61, 111, 20}}, {{205, 38, 120, 9}}, {{195, 47, 117, 2}},
418 {{233, 16, 86, 51}}, {{231, 25, 91, 56}}, {{245, 2, 76, 37}},
419 {{251, 11, 65, 46}}, {{154, 215, 97, 140}}, {{148, 222, 108, 135}},
420 {{134, 197, 123, 154}}, {{136, 204, 118, 145}}, {{162, 243, 85, 160}},
421 {{172, 250, 88, 171}}, {{190, 225, 79, 182}}, {{176, 232, 66, 189}},
422 {{234, 159, 9, 212}}, {{228, 150, 4, 223}}, {{246, 141, 19, 194}},
423 {{248, 132, 30, 201}}, {{210, 187, 61, 248}}, {{220, 178, 48, 243}},
424 {{206, 169, 39, 238}}, {{192, 160, 42, 229}}, {{122, 71, 177, 60}},
425 {{116, 78, 188, 55}}, {{102, 85, 171, 42}}, {{104, 92, 166, 33}},
426 {{ 66, 99, 133, 16}}, {{ 76, 106, 136, 27}}, {{ 94, 113, 159, 6}},
427 {{ 80, 120, 146, 13}}, {{ 10, 15, 217, 100}}, {{ 4, 6, 212, 111}},
428 {{ 22, 29, 195, 114}}, {{ 24, 20, 206, 121}}, {{ 50, 43, 237, 72}},
429 {{ 60, 34, 224, 67}}, {{ 46, 57, 247, 94}}, {{ 32, 48, 250, 85}},
430 {{236, 154, 183, 1}}, {{226, 147, 186, 10}}, {{240, 136, 173, 23}},
431 {{254, 129, 160, 28}}, {{212, 190, 131, 45}}, {{218, 183, 142, 38}},
432 {{200, 172, 153, 59}}, {{198, 165, 148, 48}}, {{156, 210, 223, 89}},
433 {{146, 219, 210, 82}}, {{128, 192, 197, 79}}, {{142, 201, 200, 68}},
434 {{164, 246, 235, 117}}, {{170, 255, 230, 126}}, {{184, 228, 241, 99}},
435 {{182, 237, 252, 104}}, {{ 12, 10, 103, 177}}, {{ 2, 3, 106, 186}},
436 {{ 16, 24, 125, 167}}, {{ 30, 17, 112, 172}}, {{ 52, 46, 83, 157}},
437 {{ 58, 39, 94, 150}}, {{ 40, 60, 73, 139}}, {{ 38, 53, 68, 128}},
438 {{124, 66, 15, 233}}, {{114, 75, 2, 226}}, {{ 96, 80, 21, 255}},
439 {{110, 89, 24, 244}}, {{ 68, 102, 59, 197}}, {{ 74, 111, 54, 206}},
440 {{ 88, 116, 33, 211}}, {{ 86, 125, 44, 216}}, {{ 55, 161, 12, 122}},
441 {{ 57, 168, 1, 113}}, {{ 43, 179, 22, 108}}, {{ 37, 186, 27, 103}},
442 {{ 15, 133, 56, 86}}, {{ 1, 140, 53, 93}}, {{ 19, 151, 34, 64}},
443 {{ 29, 158, 47, 75}}, {{ 71, 233, 100, 34}}, {{ 73, 224, 105, 41}},
444 {{ 91, 251, 126, 52}}, {{ 85, 242, 115, 63}}, {{127, 205, 80, 14}},
445 {{113, 196, 93, 5}}, {{ 99, 223, 74, 24}}, {{109, 214, 71, 19}},
446 {{215, 49, 220, 202}}, {{217, 56, 209, 193}}, {{203, 35, 198, 220}},
447 {{197, 42, 203, 215}}, {{239, 21, 232, 230}}, {{225, 28, 229, 237}},
448 {{243, 7, 242, 240}}, {{253, 14, 255, 251}}, {{167, 121, 180, 146}},
449 {{169, 112, 185, 153}}, {{187, 107, 174, 132}}, {{181, 98, 163, 143}},
450 {{159, 93, 128, 190}}, {{145, 84, 141, 181}}, {{131, 79, 154, 168}},
451 {{141, 70, 151, 163}},
454 {{ 0, 0, 0, 0}}, {{ 11, 14, 9, 13}}, {{ 22, 28, 18, 26}},
455 {{ 29, 18, 27, 23}}, {{ 44, 56, 36, 52}}, {{ 39, 54, 45, 57}},
456 {{ 58, 36, 54, 46}}, {{ 49, 42, 63, 35}}, {{ 88, 112, 72, 104}},
457 {{ 83, 126, 65, 101}}, {{ 78, 108, 90, 114}}, {{ 69, 98, 83, 127}},
458 {{116, 72, 108, 92}}, {{127, 70, 101, 81}}, {{ 98, 84, 126, 70}},
459 {{105, 90, 119, 75}}, {{176, 224, 144, 208}}, {{187, 238, 153, 221}},
460 {{166, 252, 130, 202}}, {{173, 242, 139, 199}}, {{156, 216, 180, 228}},
461 {{151, 214, 189, 233}}, {{138, 196, 166, 254}}, {{129, 202, 175, 243}},
462 {{232, 144, 216, 184}}, {{227, 158, 209, 181}}, {{254, 140, 202, 162}},
463 {{245, 130, 195, 175}}, {{196, 168, 252, 140}}, {{207, 166, 245, 129}},
464 {{210, 180, 238, 150}}, {{217, 186, 231, 155}}, {{123, 219, 59, 187}},
465 {{112, 213, 50, 182}}, {{109, 199, 41, 161}}, {{102, 201, 32, 172}},
466 {{ 87, 227, 31, 143}}, {{ 92, 237, 22, 130}}, {{ 65, 255, 13, 149}},
467 {{ 74, 241, 4, 152}}, {{ 35, 171, 115, 211}}, {{ 40, 165, 122, 222}},
468 {{ 53, 183, 97, 201}}, {{ 62, 185, 104, 196}}, {{ 15, 147, 87, 231}},
469 {{ 4, 157, 94, 234}}, {{ 25, 143, 69, 253}}, {{ 18, 129, 76, 240}},
470 {{203, 59, 171, 107}}, {{192, 53, 162, 102}}, {{221, 39, 185, 113}},
471 {{214, 41, 176, 124}}, {{231, 3, 143, 95}}, {{236, 13, 134, 82}},
472 {{241, 31, 157, 69}}, {{250, 17, 148, 72}}, {{147, 75, 227, 3}},
473 {{152, 69, 234, 14}}, {{133, 87, 241, 25}}, {{142, 89, 248, 20}},
474 {{191, 115, 199, 55}}, {{180, 125, 206, 58}}, {{169, 111, 213, 45}},
475 {{162, 97, 220, 32}}, {{246, 173, 118, 109}}, {{253, 163, 127, 96}},
476 {{224, 177, 100, 119}}, {{235, 191, 109, 122}}, {{218, 149, 82, 89}},
477 {{209, 155, 91, 84}}, {{204, 137, 64, 67}}, {{199, 135, 73, 78}},
478 {{174, 221, 62, 5}}, {{165, 211, 55, 8}}, {{184, 193, 44, 31}},
479 {{179, 207, 37, 18}}, {{130, 229, 26, 49}}, {{137, 235, 19, 60}},
480 {{148, 249, 8, 43}}, {{159, 247, 1, 38}}, {{ 70, 77, 230, 189}},
481 {{ 77, 67, 239, 176}}, {{ 80, 81, 244, 167}}, {{ 91, 95, 253, 170}},
482 {{106, 117, 194, 137}}, {{ 97, 123, 203, 132}}, {{124, 105, 208, 147}},
483 {{119, 103, 217, 158}}, {{ 30, 61, 174, 213}}, {{ 21, 51, 167, 216}},
484 {{ 8, 33, 188, 207}}, {{ 3, 47, 181, 194}}, {{ 50, 5, 138, 225}},
485 {{ 57, 11, 131, 236}}, {{ 36, 25, 152, 251}}, {{ 47, 23, 145, 246}},
486 {{141, 118, 77, 214}}, {{134, 120, 68, 219}}, {{155, 106, 95, 204}},
487 {{144, 100, 86, 193}}, {{161, 78, 105, 226}}, {{170, 64, 96, 239}},
488 {{183, 82, 123, 248}}, {{188, 92, 114, 245}}, {{213, 6, 5, 190}},
489 {{222, 8, 12, 179}}, {{195, 26, 23, 164}}, {{200, 20, 30, 169}},
490 {{249, 62, 33, 138}}, {{242, 48, 40, 135}}, {{239, 34, 51, 144}},
491 {{228, 44, 58, 157}}, {{ 61, 150, 221, 6}}, {{ 54, 152, 212, 11}},
492 {{ 43, 138, 207, 28}}, {{ 32, 132, 198, 17}}, {{ 17, 174, 249, 50}},
493 {{ 26, 160, 240, 63}}, {{ 7, 178, 235, 40}}, {{ 12, 188, 226, 37}},
494 {{101, 230, 149, 110}}, {{110, 232, 156, 99}}, {{115, 250, 135, 116}},
495 {{120, 244, 142, 121}}, {{ 73, 222, 177, 90}}, {{ 66, 208, 184, 87}},
496 {{ 95, 194, 163, 64}}, {{ 84, 204, 170, 77}}, {{247, 65, 236, 218}},
497 {{252, 79, 229, 215}}, {{225, 93, 254, 192}}, {{234, 83, 247, 205}},
498 {{219, 121, 200, 238}}, {{208, 119, 193, 227}}, {{205, 101, 218, 244}},
499 {{198, 107, 211, 249}}, {{175, 49, 164, 178}}, {{164, 63, 173, 191}},
500 {{185, 45, 182, 168}}, {{178, 35, 191, 165}}, {{131, 9, 128, 134}},
501 {{136, 7, 137, 139}}, {{149, 21, 146, 156}}, {{158, 27, 155, 145}},
502 {{ 71, 161, 124, 10}}, {{ 76, 175, 117, 7}}, {{ 81, 189, 110, 16}},
503 {{ 90, 179, 103, 29}}, {{107, 153, 88, 62}}, {{ 96, 151, 81, 51}},
504 {{125, 133, 74, 36}}, {{118, 139, 67, 41}}, {{ 31, 209, 52, 98}},
505 {{ 20, 223, 61, 111}}, {{ 9, 205, 38, 120}}, {{ 2, 195, 47, 117}},
506 {{ 51, 233, 16, 86}}, {{ 56, 231, 25, 91}}, {{ 37, 245, 2, 76}},
507 {{ 46, 251, 11, 65}}, {{140, 154, 215, 97}}, {{135, 148, 222, 108}},
508 {{154, 134, 197, 123}}, {{145, 136, 204, 118}}, {{160, 162, 243, 85}},
509 {{171, 172, 250, 88}}, {{182, 190, 225, 79}}, {{189, 176, 232, 66}},
510 {{212, 234, 159, 9}}, {{223, 228, 150, 4}}, {{194, 246, 141, 19}},
511 {{201, 248, 132, 30}}, {{248, 210, 187, 61}}, {{243, 220, 178, 48}},
512 {{238, 206, 169, 39}}, {{229, 192, 160, 42}}, {{ 60, 122, 71, 177}},
513 {{ 55, 116, 78, 188}}, {{ 42, 102, 85, 171}}, {{ 33, 104, 92, 166}},
514 {{ 16, 66, 99, 133}}, {{ 27, 76, 106, 136}}, {{ 6, 94, 113, 159}},
515 {{ 13, 80, 120, 146}}, {{100, 10, 15, 217}}, {{111, 4, 6, 212}},
516 {{114, 22, 29, 195}}, {{121, 24, 20, 206}}, {{ 72, 50, 43, 237}},
517 {{ 67, 60, 34, 224}}, {{ 94, 46, 57, 247}}, {{ 85, 32, 48, 250}},
518 {{ 1, 236, 154, 183}}, {{ 10, 226, 147, 186}}, {{ 23, 240, 136, 173}},
519 {{ 28, 254, 129, 160}}, {{ 45, 212, 190, 131}}, {{ 38, 218, 183, 142}},
520 {{ 59, 200, 172, 153}}, {{ 48, 198, 165, 148}}, {{ 89, 156, 210, 223}},
521 {{ 82, 146, 219, 210}}, {{ 79, 128, 192, 197}}, {{ 68, 142, 201, 200}},
522 {{117, 164, 246, 235}}, {{126, 170, 255, 230}}, {{ 99, 184, 228, 241}},
523 {{104, 182, 237, 252}}, {{177, 12, 10, 103}}, {{186, 2, 3, 106}},
524 {{167, 16, 24, 125}}, {{172, 30, 17, 112}}, {{157, 52, 46, 83}},
525 {{150, 58, 39, 94}}, {{139, 40, 60, 73}}, {{128, 38, 53, 68}},
526 {{233, 124, 66, 15}}, {{226, 114, 75, 2}}, {{255, 96, 80, 21}},
527 {{244, 110, 89, 24}}, {{197, 68, 102, 59}}, {{206, 74, 111, 54}},
528 {{211, 88, 116, 33}}, {{216, 86, 125, 44}}, {{122, 55, 161, 12}},
529 {{113, 57, 168, 1}}, {{108, 43, 179, 22}}, {{103, 37, 186, 27}},
530 {{ 86, 15, 133, 56}}, {{ 93, 1, 140, 53}}, {{ 64, 19, 151, 34}},
531 {{ 75, 29, 158, 47}}, {{ 34, 71, 233, 100}}, {{ 41, 73, 224, 105}},
532 {{ 52, 91, 251, 126}}, {{ 63, 85, 242, 115}}, {{ 14, 127, 205, 80}},
533 {{ 5, 113, 196, 93}}, {{ 24, 99, 223, 74}}, {{ 19, 109, 214, 71}},
534 {{202, 215, 49, 220}}, {{193, 217, 56, 209}}, {{220, 203, 35, 198}},
535 {{215, 197, 42, 203}}, {{230, 239, 21, 232}}, {{237, 225, 28, 229}},
536 {{240, 243, 7, 242}}, {{251, 253, 14, 255}}, {{146, 167, 121, 180}},
537 {{153, 169, 112, 185}}, {{132, 187, 107, 174}}, {{143, 181, 98, 163}},
538 {{190, 159, 93, 128}}, {{181, 145, 84, 141}}, {{168, 131, 79, 154}},
539 {{163, 141, 70, 151}},
542 {{ 0, 0, 0, 0}}, {{ 13, 11, 14, 9}}, {{ 26, 22, 28, 18}},
543 {{ 23, 29, 18, 27}}, {{ 52, 44, 56, 36}}, {{ 57, 39, 54, 45}},
544 {{ 46, 58, 36, 54}}, {{ 35, 49, 42, 63}}, {{104, 88, 112, 72}},
545 {{101, 83, 126, 65}}, {{114, 78, 108, 90}}, {{127, 69, 98, 83}},
546 {{ 92, 116, 72, 108}}, {{ 81, 127, 70, 101}}, {{ 70, 98, 84, 126}},
547 {{ 75, 105, 90, 119}}, {{208, 176, 224, 144}}, {{221, 187, 238, 153}},
548 {{202, 166, 252, 130}}, {{199, 173, 242, 139}}, {{228, 156, 216, 180}},
549 {{233, 151, 214, 189}}, {{254, 138, 196, 166}}, {{243, 129, 202, 175}},
550 {{184, 232, 144, 216}}, {{181, 227, 158, 209}}, {{162, 254, 140, 202}},
551 {{175, 245, 130, 195}}, {{140, 196, 168, 252}}, {{129, 207, 166, 245}},
552 {{150, 210, 180, 238}}, {{155, 217, 186, 231}}, {{187, 123, 219, 59}},
553 {{182, 112, 213, 50}}, {{161, 109, 199, 41}}, {{172, 102, 201, 32}},
554 {{143, 87, 227, 31}}, {{130, 92, 237, 22}}, {{149, 65, 255, 13}},
555 {{152, 74, 241, 4}}, {{211, 35, 171, 115}}, {{222, 40, 165, 122}},
556 {{201, 53, 183, 97}}, {{196, 62, 185, 104}}, {{231, 15, 147, 87}},
557 {{234, 4, 157, 94}}, {{253, 25, 143, 69}}, {{240, 18, 129, 76}},
558 {{107, 203, 59, 171}}, {{102, 192, 53, 162}}, {{113, 221, 39, 185}},
559 {{124, 214, 41, 176}}, {{ 95, 231, 3, 143}}, {{ 82, 236, 13, 134}},
560 {{ 69, 241, 31, 157}}, {{ 72, 250, 17, 148}}, {{ 3, 147, 75, 227}},
561 {{ 14, 152, 69, 234}}, {{ 25, 133, 87, 241}}, {{ 20, 142, 89, 248}},
562 {{ 55, 191, 115, 199}}, {{ 58, 180, 125, 206}}, {{ 45, 169, 111, 213}},
563 {{ 32, 162, 97, 220}}, {{109, 246, 173, 118}}, {{ 96, 253, 163, 127}},
564 {{119, 224, 177, 100}}, {{122, 235, 191, 109}}, {{ 89, 218, 149, 82}},
565 {{ 84, 209, 155, 91}}, {{ 67, 204, 137, 64}}, {{ 78, 199, 135, 73}},
566 {{ 5, 174, 221, 62}}, {{ 8, 165, 211, 55}}, {{ 31, 184, 193, 44}},
567 {{ 18, 179, 207, 37}}, {{ 49, 130, 229, 26}}, {{ 60, 137, 235, 19}},
568 {{ 43, 148, 249, 8}}, {{ 38, 159, 247, 1}}, {{189, 70, 77, 230}},
569 {{176, 77, 67, 239}}, {{167, 80, 81, 244}}, {{170, 91, 95, 253}},
570 {{137, 106, 117, 194}}, {{132, 97, 123, 203}}, {{147, 124, 105, 208}},
571 {{158, 119, 103, 217}}, {{213, 30, 61, 174}}, {{216, 21, 51, 167}},
572 {{207, 8, 33, 188}}, {{194, 3, 47, 181}}, {{225, 50, 5, 138}},
573 {{236, 57, 11, 131}}, {{251, 36, 25, 152}}, {{246, 47, 23, 145}},
574 {{214, 141, 118, 77}}, {{219, 134, 120, 68}}, {{204, 155, 106, 95}},
575 {{193, 144, 100, 86}}, {{226, 161, 78, 105}}, {{239, 170, 64, 96}},
576 {{248, 183, 82, 123}}, {{245, 188, 92, 114}}, {{190, 213, 6, 5}},
577 {{179, 222, 8, 12}}, {{164, 195, 26, 23}}, {{169, 200, 20, 30}},
578 {{138, 249, 62, 33}}, {{135, 242, 48, 40}}, {{144, 239, 34, 51}},
579 {{157, 228, 44, 58}}, {{ 6, 61, 150, 221}}, {{ 11, 54, 152, 212}},
580 {{ 28, 43, 138, 207}}, {{ 17, 32, 132, 198}}, {{ 50, 17, 174, 249}},
581 {{ 63, 26, 160, 240}}, {{ 40, 7, 178, 235}}, {{ 37, 12, 188, 226}},
582 {{110, 101, 230, 149}}, {{ 99, 110, 232, 156}}, {{116, 115, 250, 135}},
583 {{121, 120, 244, 142}}, {{ 90, 73, 222, 177}}, {{ 87, 66, 208, 184}},
584 {{ 64, 95, 194, 163}}, {{ 77, 84, 204, 170}}, {{218, 247, 65, 236}},
585 {{215, 252, 79, 229}}, {{192, 225, 93, 254}}, {{205, 234, 83, 247}},
586 {{238, 219, 121, 200}}, {{227, 208, 119, 193}}, {{244, 205, 101, 218}},
587 {{249, 198, 107, 211}}, {{178, 175, 49, 164}}, {{191, 164, 63, 173}},
588 {{168, 185, 45, 182}}, {{165, 178, 35, 191}}, {{134, 131, 9, 128}},
589 {{139, 136, 7, 137}}, {{156, 149, 21, 146}}, {{145, 158, 27, 155}},
590 {{ 10, 71, 161, 124}}, {{ 7, 76, 175, 117}}, {{ 16, 81, 189, 110}},
591 {{ 29, 90, 179, 103}}, {{ 62, 107, 153, 88}}, {{ 51, 96, 151, 81}},
592 {{ 36, 125, 133, 74}}, {{ 41, 118, 139, 67}}, {{ 98, 31, 209, 52}},
593 {{111, 20, 223, 61}}, {{120, 9, 205, 38}}, {{117, 2, 195, 47}},
594 {{ 86, 51, 233, 16}}, {{ 91, 56, 231, 25}}, {{ 76, 37, 245, 2}},
595 {{ 65, 46, 251, 11}}, {{ 97, 140, 154, 215}}, {{108, 135, 148, 222}},
596 {{123, 154, 134, 197}}, {{118, 145, 136, 204}}, {{ 85, 160, 162, 243}},
597 {{ 88, 171, 172, 250}}, {{ 79, 182, 190, 225}}, {{ 66, 189, 176, 232}},
598 {{ 9, 212, 234, 159}}, {{ 4, 223, 228, 150}}, {{ 19, 194, 246, 141}},
599 {{ 30, 201, 248, 132}}, {{ 61, 248, 210, 187}}, {{ 48, 243, 220, 178}},
600 {{ 39, 238, 206, 169}}, {{ 42, 229, 192, 160}}, {{177, 60, 122, 71}},
601 {{188, 55, 116, 78}}, {{171, 42, 102, 85}}, {{166, 33, 104, 92}},
602 {{133, 16, 66, 99}}, {{136, 27, 76, 106}}, {{159, 6, 94, 113}},
603 {{146, 13, 80, 120}}, {{217, 100, 10, 15}}, {{212, 111, 4, 6}},
604 {{195, 114, 22, 29}}, {{206, 121, 24, 20}}, {{237, 72, 50, 43}},
605 {{224, 67, 60, 34}}, {{247, 94, 46, 57}}, {{250, 85, 32, 48}},
606 {{183, 1, 236, 154}}, {{186, 10, 226, 147}}, {{173, 23, 240, 136}},
607 {{160, 28, 254, 129}}, {{131, 45, 212, 190}}, {{142, 38, 218, 183}},
608 {{153, 59, 200, 172}}, {{148, 48, 198, 165}}, {{223, 89, 156, 210}},
609 {{210, 82, 146, 219}}, {{197, 79, 128, 192}}, {{200, 68, 142, 201}},
610 {{235, 117, 164, 246}}, {{230, 126, 170, 255}}, {{241, 99, 184, 228}},
611 {{252, 104, 182, 237}}, {{103, 177, 12, 10}}, {{106, 186, 2, 3}},
612 {{125, 167, 16, 24}}, {{112, 172, 30, 17}}, {{ 83, 157, 52, 46}},
613 {{ 94, 150, 58, 39}}, {{ 73, 139, 40, 60}}, {{ 68, 128, 38, 53}},
614 {{ 15, 233, 124, 66}}, {{ 2, 226, 114, 75}}, {{ 21, 255, 96, 80}},
615 {{ 24, 244, 110, 89}}, {{ 59, 197, 68, 102}}, {{ 54, 206, 74, 111}},
616 {{ 33, 211, 88, 116}}, {{ 44, 216, 86, 125}}, {{ 12, 122, 55, 161}},
617 {{ 1, 113, 57, 168}}, {{ 22, 108, 43, 179}}, {{ 27, 103, 37, 186}},
618 {{ 56, 86, 15, 133}}, {{ 53, 93, 1, 140}}, {{ 34, 64, 19, 151}},
619 {{ 47, 75, 29, 158}}, {{100, 34, 71, 233}}, {{105, 41, 73, 224}},
620 {{126, 52, 91, 251}}, {{115, 63, 85, 242}}, {{ 80, 14, 127, 205}},
621 {{ 93, 5, 113, 196}}, {{ 74, 24, 99, 223}}, {{ 71, 19, 109, 214}},
622 {{220, 202, 215, 49}}, {{209, 193, 217, 56}}, {{198, 220, 203, 35}},
623 {{203, 215, 197, 42}}, {{232, 230, 239, 21}}, {{229, 237, 225, 28}},
624 {{242, 240, 243, 7}}, {{255, 251, 253, 14}}, {{180, 146, 167, 121}},
625 {{185, 153, 169, 112}}, {{174, 132, 187, 107}}, {{163, 143, 181, 98}},
626 {{128, 190, 159, 93}}, {{141, 181, 145, 84}}, {{154, 168, 131, 79}},
627 {{151, 163, 141, 70}},
630 {{ 0, 0, 0, 0}}, {{ 9, 13, 11, 14}}, {{ 18, 26, 22, 28}},
631 {{ 27, 23, 29, 18}}, {{ 36, 52, 44, 56}}, {{ 45, 57, 39, 54}},
632 {{ 54, 46, 58, 36}}, {{ 63, 35, 49, 42}}, {{ 72, 104, 88, 112}},
633 {{ 65, 101, 83, 126}}, {{ 90, 114, 78, 108}}, {{ 83, 127, 69, 98}},
634 {{108, 92, 116, 72}}, {{101, 81, 127, 70}}, {{126, 70, 98, 84}},
635 {{119, 75, 105, 90}}, {{144, 208, 176, 224}}, {{153, 221, 187, 238}},
636 {{130, 202, 166, 252}}, {{139, 199, 173, 242}}, {{180, 228, 156, 216}},
637 {{189, 233, 151, 214}}, {{166, 254, 138, 196}}, {{175, 243, 129, 202}},
638 {{216, 184, 232, 144}}, {{209, 181, 227, 158}}, {{202, 162, 254, 140}},
639 {{195, 175, 245, 130}}, {{252, 140, 196, 168}}, {{245, 129, 207, 166}},
640 {{238, 150, 210, 180}}, {{231, 155, 217, 186}}, {{ 59, 187, 123, 219}},
641 {{ 50, 182, 112, 213}}, {{ 41, 161, 109, 199}}, {{ 32, 172, 102, 201}},
642 {{ 31, 143, 87, 227}}, {{ 22, 130, 92, 237}}, {{ 13, 149, 65, 255}},
643 {{ 4, 152, 74, 241}}, {{115, 211, 35, 171}}, {{122, 222, 40, 165}},
644 {{ 97, 201, 53, 183}}, {{104, 196, 62, 185}}, {{ 87, 231, 15, 147}},
645 {{ 94, 234, 4, 157}}, {{ 69, 253, 25, 143}}, {{ 76, 240, 18, 129}},
646 {{171, 107, 203, 59}}, {{162, 102, 192, 53}}, {{185, 113, 221, 39}},
647 {{176, 124, 214, 41}}, {{143, 95, 231, 3}}, {{134, 82, 236, 13}},
648 {{157, 69, 241, 31}}, {{148, 72, 250, 17}}, {{227, 3, 147, 75}},
649 {{234, 14, 152, 69}}, {{241, 25, 133, 87}}, {{248, 20, 142, 89}},
650 {{199, 55, 191, 115}}, {{206, 58, 180, 125}}, {{213, 45, 169, 111}},
651 {{220, 32, 162, 97}}, {{118, 109, 246, 173}}, {{127, 96, 253, 163}},
652 {{100, 119, 224, 177}}, {{109, 122, 235, 191}}, {{ 82, 89, 218, 149}},
653 {{ 91, 84, 209, 155}}, {{ 64, 67, 204, 137}}, {{ 73, 78, 199, 135}},
654 {{ 62, 5, 174, 221}}, {{ 55, 8, 165, 211}}, {{ 44, 31, 184, 193}},
655 {{ 37, 18, 179, 207}}, {{ 26, 49, 130, 229}}, {{ 19, 60, 137, 235}},
656 {{ 8, 43, 148, 249}}, {{ 1, 38, 159, 247}}, {{230, 189, 70, 77}},
657 {{239, 176, 77, 67}}, {{244, 167, 80, 81}}, {{253, 170, 91, 95}},
658 {{194, 137, 106, 117}}, {{203, 132, 97, 123}}, {{208, 147, 124, 105}},
659 {{217, 158, 119, 103}}, {{174, 213, 30, 61}}, {{167, 216, 21, 51}},
660 {{188, 207, 8, 33}}, {{181, 194, 3, 47}}, {{138, 225, 50, 5}},
661 {{131, 236, 57, 11}}, {{152, 251, 36, 25}}, {{145, 246, 47, 23}},
662 {{ 77, 214, 141, 118}}, {{ 68, 219, 134, 120}}, {{ 95, 204, 155, 106}},
663 {{ 86, 193, 144, 100}}, {{105, 226, 161, 78}}, {{ 96, 239, 170, 64}},
664 {{123, 248, 183, 82}}, {{114, 245, 188, 92}}, {{ 5, 190, 213, 6}},
665 {{ 12, 179, 222, 8}}, {{ 23, 164, 195, 26}}, {{ 30, 169, 200, 20}},
666 {{ 33, 138, 249, 62}}, {{ 40, 135, 242, 48}}, {{ 51, 144, 239, 34}},
667 {{ 58, 157, 228, 44}}, {{221, 6, 61, 150}}, {{212, 11, 54, 152}},
668 {{207, 28, 43, 138}}, {{198, 17, 32, 132}}, {{249, 50, 17, 174}},
669 {{240, 63, 26, 160}}, {{235, 40, 7, 178}}, {{226, 37, 12, 188}},
670 {{149, 110, 101, 230}}, {{156, 99, 110, 232}}, {{135, 116, 115, 250}},
671 {{142, 121, 120, 244}}, {{177, 90, 73, 222}}, {{184, 87, 66, 208}},
672 {{163, 64, 95, 194}}, {{170, 77, 84, 204}}, {{236, 218, 247, 65}},
673 {{229, 215, 252, 79}}, {{254, 192, 225, 93}}, {{247, 205, 234, 83}},
674 {{200, 238, 219, 121}}, {{193, 227, 208, 119}}, {{218, 244, 205, 101}},
675 {{211, 249, 198, 107}}, {{164, 178, 175, 49}}, {{173, 191, 164, 63}},
676 {{182, 168, 185, 45}}, {{191, 165, 178, 35}}, {{128, 134, 131, 9}},
677 {{137, 139, 136, 7}}, {{146, 156, 149, 21}}, {{155, 145, 158, 27}},
678 {{124, 10, 71, 161}}, {{117, 7, 76, 175}}, {{110, 16, 81, 189}},
679 {{103, 29, 90, 179}}, {{ 88, 62, 107, 153}}, {{ 81, 51, 96, 151}},
680 {{ 74, 36, 125, 133}}, {{ 67, 41, 118, 139}}, {{ 52, 98, 31, 209}},
681 {{ 61, 111, 20, 223}}, {{ 38, 120, 9, 205}}, {{ 47, 117, 2, 195}},
682 {{ 16, 86, 51, 233}}, {{ 25, 91, 56, 231}}, {{ 2, 76, 37, 245}},
683 {{ 11, 65, 46, 251}}, {{215, 97, 140, 154}}, {{222, 108, 135, 148}},
684 {{197, 123, 154, 134}}, {{204, 118, 145, 136}}, {{243, 85, 160, 162}},
685 {{250, 88, 171, 172}}, {{225, 79, 182, 190}}, {{232, 66, 189, 176}},
686 {{159, 9, 212, 234}}, {{150, 4, 223, 228}}, {{141, 19, 194, 246}},
687 {{132, 30, 201, 248}}, {{187, 61, 248, 210}}, {{178, 48, 243, 220}},
688 {{169, 39, 238, 206}}, {{160, 42, 229, 192}}, {{ 71, 177, 60, 122}},
689 {{ 78, 188, 55, 116}}, {{ 85, 171, 42, 102}}, {{ 92, 166, 33, 104}},
690 {{ 99, 133, 16, 66}}, {{106, 136, 27, 76}}, {{113, 159, 6, 94}},
691 {{120, 146, 13, 80}}, {{ 15, 217, 100, 10}}, {{ 6, 212, 111, 4}},
692 {{ 29, 195, 114, 22}}, {{ 20, 206, 121, 24}}, {{ 43, 237, 72, 50}},
693 {{ 34, 224, 67, 60}}, {{ 57, 247, 94, 46}}, {{ 48, 250, 85, 32}},
694 {{154, 183, 1, 236}}, {{147, 186, 10, 226}}, {{136, 173, 23, 240}},
695 {{129, 160, 28, 254}}, {{190, 131, 45, 212}}, {{183, 142, 38, 218}},
696 {{172, 153, 59, 200}}, {{165, 148, 48, 198}}, {{210, 223, 89, 156}},
697 {{219, 210, 82, 146}}, {{192, 197, 79, 128}}, {{201, 200, 68, 142}},
698 {{246, 235, 117, 164}}, {{255, 230, 126, 170}}, {{228, 241, 99, 184}},
699 {{237, 252, 104, 182}}, {{ 10, 103, 177, 12}}, {{ 3, 106, 186, 2}},
700 {{ 24, 125, 167, 16}}, {{ 17, 112, 172, 30}}, {{ 46, 83, 157, 52}},
701 {{ 39, 94, 150, 58}}, {{ 60, 73, 139, 40}}, {{ 53, 68, 128, 38}},
702 {{ 66, 15, 233, 124}}, {{ 75, 2, 226, 114}}, {{ 80, 21, 255, 96}},
703 {{ 89, 24, 244, 110}}, {{102, 59, 197, 68}}, {{111, 54, 206, 74}},
704 {{116, 33, 211, 88}}, {{125, 44, 216, 86}}, {{161, 12, 122, 55}},
705 {{168, 1, 113, 57}}, {{179, 22, 108, 43}}, {{186, 27, 103, 37}},
706 {{133, 56, 86, 15}}, {{140, 53, 93, 1}}, {{151, 34, 64, 19}},
707 {{158, 47, 75, 29}}, {{233, 100, 34, 71}}, {{224, 105, 41, 73}},
708 {{251, 126, 52, 91}}, {{242, 115, 63, 85}}, {{205, 80, 14, 127}},
709 {{196, 93, 5, 113}}, {{223, 74, 24, 99}}, {{214, 71, 19, 109}},
710 {{ 49, 220, 202, 215}}, {{ 56, 209, 193, 217}}, {{ 35, 198, 220, 203}},
711 {{ 42, 203, 215, 197}}, {{ 21, 232, 230, 239}}, {{ 28, 229, 237, 225}},
712 {{ 7, 242, 240, 243}}, {{ 14, 255, 251, 253}}, {{121, 180, 146, 167}},
713 {{112, 185, 153, 169}}, {{107, 174, 132, 187}}, {{ 98, 163, 143, 181}},
714 {{ 93, 128, 190, 159}}, {{ 84, 141, 181, 145}}, {{ 79, 154, 168, 131}},
715 {{ 70, 151, 163, 141}},
719 const int xrcon[30] = {
720 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36,
721 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6,
722 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91,
725 const word8 xS[256] = {
726 99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215,
727 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175,
728 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165,
729 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154,
730 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110,
731 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237,
732 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239,
733 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168,
734 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255,
735 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61,
736 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238,
737 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92,
738 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213,
739 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46,
740 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62,
741 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158,
742 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85,
743 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15,
747 const word8 xSi[256] = {
748 82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243,
749 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68,
750 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76,
751 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178,
752 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104,
753 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80,
754 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216,
755 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6,
756 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19,
757 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206,
758 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249,
759 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137,
760 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210,
761 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51,
762 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81,
763 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239,
764 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83,
765 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99,