3 This file is part of the ARM-Crypto-Lib.
4 Copyright (C) 2006-2010 Daniel Otte (daniel.otte@rub.de)
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
23 uint8_t jh_permutation_table[] = {
24 0x00, 0x03, 0x04, 0x07, 0x08, 0x0B, 0x0C, 0x0F, 0x10, 0x13, 0x14, 0x17, 0x18, 0x1B, 0x1C, 0x1F,
25 0x20, 0x23, 0x24, 0x27, 0x28, 0x2B, 0x2C, 0x2F, 0x30, 0x33, 0x34, 0x37, 0x38, 0x3B, 0x3C, 0x3F,
26 0x40, 0x43, 0x44, 0x47, 0x48, 0x4B, 0x4C, 0x4F, 0x50, 0x53, 0x54, 0x57, 0x58, 0x5B, 0x5C, 0x5F,
27 0x60, 0x63, 0x64, 0x67, 0x68, 0x6B, 0x6C, 0x6F, 0x70, 0x73, 0x74, 0x77, 0x78, 0x7B, 0x7C, 0x7F,
28 0x80, 0x83, 0x84, 0x87, 0x88, 0x8B, 0x8C, 0x8F, 0x90, 0x93, 0x94, 0x97, 0x98, 0x9B, 0x9C, 0x9F,
29 0xA0, 0xA3, 0xA4, 0xA7, 0xA8, 0xAB, 0xAC, 0xAF, 0xB0, 0xB3, 0xB4, 0xB7, 0xB8, 0xBB, 0xBC, 0xBF,
30 0xC0, 0xC3, 0xC4, 0xC7, 0xC8, 0xCB, 0xCC, 0xCF, 0xD0, 0xD3, 0xD4, 0xD7, 0xD8, 0xDB, 0xDC, 0xDF,
31 0xE0, 0xE3, 0xE4, 0xE7, 0xE8, 0xEB, 0xEC, 0xEF, 0xF0, 0xF3, 0xF4, 0xF7, 0xF8, 0xFB, 0xFC, 0xFF,
32 0x02, 0x01, 0x06, 0x05, 0x0A, 0x09, 0x0E, 0x0D, 0x12, 0x11, 0x16, 0x15, 0x1A, 0x19, 0x1E, 0x1D,
33 0x22, 0x21, 0x26, 0x25, 0x2A, 0x29, 0x2E, 0x2D, 0x32, 0x31, 0x36, 0x35, 0x3A, 0x39, 0x3E, 0x3D,
34 0x42, 0x41, 0x46, 0x45, 0x4A, 0x49, 0x4E, 0x4D, 0x52, 0x51, 0x56, 0x55, 0x5A, 0x59, 0x5E, 0x5D,
35 0x62, 0x61, 0x66, 0x65, 0x6A, 0x69, 0x6E, 0x6D, 0x72, 0x71, 0x76, 0x75, 0x7A, 0x79, 0x7E, 0x7D,
36 0x82, 0x81, 0x86, 0x85, 0x8A, 0x89, 0x8E, 0x8D, 0x92, 0x91, 0x96, 0x95, 0x9A, 0x99, 0x9E, 0x9D,
37 0xA2, 0xA1, 0xA6, 0xA5, 0xAA, 0xA9, 0xAE, 0xAD, 0xB2, 0xB1, 0xB6, 0xB5, 0xBA, 0xB9, 0xBE, 0xBD,
38 0xC2, 0xC1, 0xC6, 0xC5, 0xCA, 0xC9, 0xCE, 0xCD, 0xD2, 0xD1, 0xD6, 0xD5, 0xDA, 0xD9, 0xDE, 0xDD,
39 0xE2, 0xE1, 0xE6, 0xE5, 0xEA, 0xE9, 0xEE, 0xED, 0xF2, 0xF1, 0xF6, 0xF5, 0xFA, 0xF9, 0xFE, 0xFD
43 uint8_t jh_lutbox[] = {
44 0xA8, 0xB1, 0x35, 0xEA, 0x2C, 0x0D, 0xD2, 0x6E, 0x90, 0xCB, 0xF3, 0x77, 0x56, 0x14, 0x89, 0x4F,
45 0x19, 0x00, 0x84, 0x5B, 0x9D, 0xBC, 0x63, 0xDF, 0x21, 0x7A, 0x42, 0xC6, 0xE7, 0xA5, 0x38, 0xFE,
46 0x61, 0x78, 0xFC, 0x23, 0xE5, 0xC4, 0x1B, 0xA7, 0x59, 0x02, 0x3A, 0xBE, 0x9F, 0xDD, 0x40, 0x86,
47 0x0C, 0x15, 0x91, 0x4E, 0x88, 0xA9, 0x76, 0xCA, 0x34, 0x6F, 0x57, 0xD3, 0xF2, 0xB0, 0x2D, 0xEB,
48 0xD0, 0xC9, 0x4D, 0x92, 0x54, 0x75, 0xAA, 0x16, 0xE8, 0xB3, 0x8B, 0x0F, 0x2E, 0x6C, 0xF1, 0x37,
49 0x82, 0x9B, 0x1F, 0xC0, 0x06, 0x27, 0xF8, 0x44, 0xBA, 0xE1, 0xD9, 0x5D, 0x7C, 0x3E, 0xA3, 0x65,
50 0xEF, 0xF6, 0x72, 0xAD, 0x6B, 0x4A, 0x95, 0x29, 0xD7, 0x8C, 0xB4, 0x30, 0x11, 0x53, 0xCE, 0x08,
51 0x74, 0x6D, 0xE9, 0x36, 0xF0, 0xD1, 0x0E, 0xB2, 0x4C, 0x17, 0x2F, 0xAB, 0x8A, 0xC8, 0x55, 0x93,
52 0x4B, 0x52, 0xD6, 0x09, 0xCF, 0xEE, 0x31, 0x8D, 0x73, 0x28, 0x10, 0x94, 0xB5, 0xF7, 0x6A, 0xAC,
53 0x5E, 0x47, 0xC3, 0x1C, 0xDA, 0xFB, 0x24, 0x98, 0x66, 0x3D, 0x05, 0x81, 0xA0, 0xE2, 0x7F, 0xB9,
54 0xBD, 0xA4, 0x20, 0xFF, 0x39, 0x18, 0xC7, 0x7B, 0x85, 0xDE, 0xE6, 0x62, 0x43, 0x01, 0x9C, 0x5A,
55 0xC5, 0xDC, 0x58, 0x87, 0x41, 0x60, 0xBF, 0x03, 0xFD, 0xA6, 0x9E, 0x1A, 0x3B, 0x79, 0xE4, 0x22,
56 0x97, 0x8E, 0x0A, 0xD5, 0x13, 0x32, 0xED, 0x51, 0xAF, 0xF4, 0xCC, 0x48, 0x69, 0x2B, 0xB6, 0x70,
57 0x33, 0x2A, 0xAE, 0x71, 0xB7, 0x96, 0x49, 0xF5, 0x0B, 0x50, 0x68, 0xEC, 0xCD, 0x8F, 0x12, 0xD4,
58 0xFA, 0xE3, 0x67, 0xB8, 0x7E, 0x5F, 0x80, 0x3C, 0xC2, 0x99, 0xA1, 0x25, 0x04, 0x46, 0xDB, 0x1D,
59 0x26, 0x3F, 0xBB, 0x64, 0xA2, 0x83, 0x5C, 0xE0, 0x1E, 0x45, 0x7D, 0xF9, 0xD8, 0x9A, 0x07, 0xC1,
62 0xD2, 0x0D, 0x77, 0x2C, 0x14, 0x56, 0x90, 0xA8, 0x6E, 0xF3, 0xB1, 0x35, 0xEA, 0xCB, 0x4F, 0x89,
63 0x63, 0xBC, 0xC6, 0x9D, 0xA5, 0xE7, 0x21, 0x19, 0xDF, 0x42, 0x00, 0x84, 0x5B, 0x7A, 0xFE, 0x38,
64 0x1B, 0xC4, 0xBE, 0xE5, 0xDD, 0x9F, 0x59, 0x61, 0xA7, 0x3A, 0x78, 0xFC, 0x23, 0x02, 0x86, 0x40,
65 0x76, 0xA9, 0xD3, 0x88, 0xB0, 0xF2, 0x34, 0x0C, 0xCA, 0x57, 0x15, 0x91, 0x4E, 0x6F, 0xEB, 0x2D,
66 0xAA, 0x75, 0x0F, 0x54, 0x6C, 0x2E, 0xE8, 0xD0, 0x16, 0x8B, 0xC9, 0x4D, 0x92, 0xB3, 0x37, 0xF1,
67 0xF8, 0x27, 0x5D, 0x06, 0x3E, 0x7C, 0xBA, 0x82, 0x44, 0xD9, 0x9B, 0x1F, 0xC0, 0xE1, 0x65, 0xA3,
68 0x95, 0x4A, 0x30, 0x6B, 0x53, 0x11, 0xD7, 0xEF, 0x29, 0xB4, 0xF6, 0x72, 0xAD, 0x8C, 0x08, 0xCE,
69 0x0E, 0xD1, 0xAB, 0xF0, 0xC8, 0x8A, 0x4C, 0x74, 0xB2, 0x2F, 0x6D, 0xE9, 0x36, 0x17, 0x93, 0x55,
70 0x31, 0xEE, 0x94, 0xCF, 0xF7, 0xB5, 0x73, 0x4B, 0x8D, 0x10, 0x52, 0xD6, 0x09, 0x28, 0xAC, 0x6A,
71 0x24, 0xFB, 0x81, 0xDA, 0xE2, 0xA0, 0x66, 0x5E, 0x98, 0x05, 0x47, 0xC3, 0x1C, 0x3D, 0xB9, 0x7F,
72 0xC7, 0x18, 0x62, 0x39, 0x01, 0x43, 0x85, 0xBD, 0x7B, 0xE6, 0xA4, 0x20, 0xFF, 0xDE, 0x5A, 0x9C,
73 0xBF, 0x60, 0x1A, 0x41, 0x79, 0x3B, 0xFD, 0xC5, 0x03, 0x9E, 0xDC, 0x58, 0x87, 0xA6, 0x22, 0xE4,
74 0xED, 0x32, 0x48, 0x13, 0x2B, 0x69, 0xAF, 0x97, 0x51, 0xCC, 0x8E, 0x0A, 0xD5, 0xF4, 0x70, 0xB6,
75 0x49, 0x96, 0xEC, 0xB7, 0x8F, 0xCD, 0x0B, 0x33, 0xF5, 0x68, 0x2A, 0xAE, 0x71, 0x50, 0xD4, 0x12,
76 0x80, 0x5F, 0x25, 0x7E, 0x46, 0x04, 0xC2, 0xFA, 0x3C, 0xA1, 0xE3, 0x67, 0xB8, 0x99, 0x1D, 0xDB,
77 0x5C, 0x83, 0xF9, 0xA2, 0x9A, 0xD8, 0x1E, 0x26, 0xE0, 0x7D, 0x3F, 0xBB, 0x64, 0x45, 0xC1, 0x07,
80 0xEF, 0xF6, 0x72, 0xAD, 0x6B, 0x4A, 0x95, 0x29, 0xD7, 0x8C, 0xB4, 0x30, 0x11, 0x53, 0xCE, 0x08,
81 0x82, 0x9B, 0x1F, 0xC0, 0x06, 0x27, 0xF8, 0x44, 0xBA, 0xE1, 0xD9, 0x5D, 0x7C, 0x3E, 0xA3, 0x65,
82 0xC5, 0xDC, 0x58, 0x87, 0x41, 0x60, 0xBF, 0x03, 0xFD, 0xA6, 0x9E, 0x1A, 0x3B, 0x79, 0xE4, 0x22,
83 0xD0, 0xC9, 0x4D, 0x92, 0x54, 0x75, 0xAA, 0x16, 0xE8, 0xB3, 0x8B, 0x0F, 0x2E, 0x6C, 0xF1, 0x37,
84 0x33, 0x2A, 0xAE, 0x71, 0xB7, 0x96, 0x49, 0xF5, 0x0B, 0x50, 0x68, 0xEC, 0xCD, 0x8F, 0x12, 0xD4,
85 0x97, 0x8E, 0x0A, 0xD5, 0x13, 0x32, 0xED, 0x51, 0xAF, 0xF4, 0xCC, 0x48, 0x69, 0x2B, 0xB6, 0x70,
86 0x4B, 0x52, 0xD6, 0x09, 0xCF, 0xEE, 0x31, 0x8D, 0x73, 0x28, 0x10, 0x94, 0xB5, 0xF7, 0x6A, 0xAC,
87 0xA8, 0xB1, 0x35, 0xEA, 0x2C, 0x0D, 0xD2, 0x6E, 0x90, 0xCB, 0xF3, 0x77, 0x56, 0x14, 0x89, 0x4F,
88 0x74, 0x6D, 0xE9, 0x36, 0xF0, 0xD1, 0x0E, 0xB2, 0x4C, 0x17, 0x2F, 0xAB, 0x8A, 0xC8, 0x55, 0x93,
89 0xBD, 0xA4, 0x20, 0xFF, 0x39, 0x18, 0xC7, 0x7B, 0x85, 0xDE, 0xE6, 0x62, 0x43, 0x01, 0x9C, 0x5A,
90 0x19, 0x00, 0x84, 0x5B, 0x9D, 0xBC, 0x63, 0xDF, 0x21, 0x7A, 0x42, 0xC6, 0xE7, 0xA5, 0x38, 0xFE,
91 0x61, 0x78, 0xFC, 0x23, 0xE5, 0xC4, 0x1B, 0xA7, 0x59, 0x02, 0x3A, 0xBE, 0x9F, 0xDD, 0x40, 0x86,
92 0x0C, 0x15, 0x91, 0x4E, 0x88, 0xA9, 0x76, 0xCA, 0x34, 0x6F, 0x57, 0xD3, 0xF2, 0xB0, 0x2D, 0xEB,
93 0x5E, 0x47, 0xC3, 0x1C, 0xDA, 0xFB, 0x24, 0x98, 0x66, 0x3D, 0x05, 0x81, 0xA0, 0xE2, 0x7F, 0xB9,
94 0x26, 0x3F, 0xBB, 0x64, 0xA2, 0x83, 0x5C, 0xE0, 0x1E, 0x45, 0x7D, 0xF9, 0xD8, 0x9A, 0x07, 0xC1,
95 0xFA, 0xE3, 0x67, 0xB8, 0x7E, 0x5F, 0x80, 0x3C, 0xC2, 0x99, 0xA1, 0x25, 0x04, 0x46, 0xDB, 0x1D,
98 0x95, 0x4A, 0x30, 0x6B, 0x53, 0x11, 0xD7, 0xEF, 0x29, 0xB4, 0xF6, 0x72, 0xAD, 0x8C, 0x08, 0xCE,
99 0xF8, 0x27, 0x5D, 0x06, 0x3E, 0x7C, 0xBA, 0x82, 0x44, 0xD9, 0x9B, 0x1F, 0xC0, 0xE1, 0x65, 0xA3,
100 0xBF, 0x60, 0x1A, 0x41, 0x79, 0x3B, 0xFD, 0xC5, 0x03, 0x9E, 0xDC, 0x58, 0x87, 0xA6, 0x22, 0xE4,
101 0xAA, 0x75, 0x0F, 0x54, 0x6C, 0x2E, 0xE8, 0xD0, 0x16, 0x8B, 0xC9, 0x4D, 0x92, 0xB3, 0x37, 0xF1,
102 0x49, 0x96, 0xEC, 0xB7, 0x8F, 0xCD, 0x0B, 0x33, 0xF5, 0x68, 0x2A, 0xAE, 0x71, 0x50, 0xD4, 0x12,
103 0xED, 0x32, 0x48, 0x13, 0x2B, 0x69, 0xAF, 0x97, 0x51, 0xCC, 0x8E, 0x0A, 0xD5, 0xF4, 0x70, 0xB6,
104 0x31, 0xEE, 0x94, 0xCF, 0xF7, 0xB5, 0x73, 0x4B, 0x8D, 0x10, 0x52, 0xD6, 0x09, 0x28, 0xAC, 0x6A,
105 0xD2, 0x0D, 0x77, 0x2C, 0x14, 0x56, 0x90, 0xA8, 0x6E, 0xF3, 0xB1, 0x35, 0xEA, 0xCB, 0x4F, 0x89,
106 0x0E, 0xD1, 0xAB, 0xF0, 0xC8, 0x8A, 0x4C, 0x74, 0xB2, 0x2F, 0x6D, 0xE9, 0x36, 0x17, 0x93, 0x55,
107 0xC7, 0x18, 0x62, 0x39, 0x01, 0x43, 0x85, 0xBD, 0x7B, 0xE6, 0xA4, 0x20, 0xFF, 0xDE, 0x5A, 0x9C,
108 0x63, 0xBC, 0xC6, 0x9D, 0xA5, 0xE7, 0x21, 0x19, 0xDF, 0x42, 0x00, 0x84, 0x5B, 0x7A, 0xFE, 0x38,
109 0x1B, 0xC4, 0xBE, 0xE5, 0xDD, 0x9F, 0x59, 0x61, 0xA7, 0x3A, 0x78, 0xFC, 0x23, 0x02, 0x86, 0x40,
110 0x76, 0xA9, 0xD3, 0x88, 0xB0, 0xF2, 0x34, 0x0C, 0xCA, 0x57, 0x15, 0x91, 0x4E, 0x6F, 0xEB, 0x2D,
111 0x24, 0xFB, 0x81, 0xDA, 0xE2, 0xA0, 0x66, 0x5E, 0x98, 0x05, 0x47, 0xC3, 0x1C, 0x3D, 0xB9, 0x7F,
112 0x5C, 0x83, 0xF9, 0xA2, 0x9A, 0xD8, 0x1E, 0x26, 0xE0, 0x7D, 0x3F, 0xBB, 0x64, 0x45, 0xC1, 0x07,
113 0x80, 0x5F, 0x25, 0x7E, 0x46, 0x04, 0xC2, 0xFA, 0x3C, 0xA1, 0xE3, 0x67, 0xB8, 0x99, 0x1D, 0xDB
117 uint8_t jh_round_const[] = {
119 0x6a, 0x09, 0xe6, 0x67, 0xf3, 0xbc, 0xc9, 0x08,
120 0xb2, 0xfb, 0x13, 0x66, 0xea, 0x95, 0x7d, 0x3e,
121 0x3a, 0xde, 0xc1, 0x75, 0x12, 0x77, 0x50, 0x99,
122 0xda, 0x2f, 0x59, 0x0b, 0x06, 0x67, 0x32, 0x2a,
124 0xbb, 0x89, 0x6b, 0xf0, 0x59, 0x55, 0xab, 0xcd,
125 0x52, 0x81, 0x82, 0x8d, 0x66, 0xe7, 0xd9, 0x9a,
126 0xc4, 0x20, 0x34, 0x94, 0xf8, 0x9b, 0xf1, 0x28,
127 0x17, 0xde, 0xb4, 0x32, 0x88, 0x71, 0x22, 0x31,
129 0x18, 0x36, 0xe7, 0x6b, 0x12, 0xd7, 0x9c, 0x55,
130 0x11, 0x8a, 0x11, 0x39, 0xd2, 0x41, 0x7d, 0xf5,
131 0x2a, 0x20, 0x21, 0x22, 0x5f, 0xf6, 0x35, 0x00,
132 0x63, 0xd8, 0x8e, 0x5f, 0x1f, 0x91, 0x63, 0x1c,
134 0x26, 0x30, 0x85, 0xa7, 0x00, 0x0f, 0xa9, 0xc3,
135 0x31, 0x7c, 0x6c, 0xa8, 0xab, 0x65, 0xf7, 0xa7,
136 0x71, 0x3c, 0xf4, 0x20, 0x10, 0x60, 0xce, 0x88,
137 0x6a, 0xf8, 0x55, 0xa9, 0x0d, 0x6a, 0x4e, 0xed,
139 0x1c, 0xeb, 0xaf, 0xd5, 0x1a, 0x15, 0x6a, 0xeb,
140 0x62, 0xa1, 0x1f, 0xb3, 0xbe, 0x2e, 0x14, 0xf6,
141 0x0b, 0x7e, 0x48, 0xde, 0x85, 0x81, 0x42, 0x70,
142 0xfd, 0x62, 0xe9, 0x76, 0x14, 0xd7, 0xb4, 0x41,
144 0xe5, 0x56, 0x4c, 0xb5, 0x74, 0xf7, 0xe0, 0x9c,
145 0x75, 0xe2, 0xe2, 0x44, 0x92, 0x9e, 0x95, 0x49,
146 0x27, 0x9a, 0xb2, 0x24, 0xa2, 0x8e, 0x44, 0x5d,
147 0x57, 0x18, 0x5e, 0x7d, 0x7a, 0x09, 0xfd, 0xc1,
149 0x58, 0x20, 0xf0, 0xf0, 0xd7, 0x64, 0xcf, 0xf3,
150 0xa5, 0x55, 0x2a, 0x5e, 0x41, 0xa8, 0x2b, 0x9e,
151 0xff, 0x6e, 0xe0, 0xaa, 0x61, 0x57, 0x73, 0xbb,
152 0x07, 0xe8, 0x60, 0x34, 0x24, 0xc3, 0xcf, 0x8a,
154 0xb1, 0x26, 0xfb, 0x74, 0x17, 0x33, 0xc5, 0xbf,
155 0xce, 0xf6, 0xf4, 0x3a, 0x62, 0xe8, 0xe5, 0x70,
156 0x6a, 0x26, 0x65, 0x60, 0x28, 0xaa, 0x89, 0x7e,
157 0xc1, 0xea, 0x46, 0x16, 0xce, 0x8f, 0xd5, 0x10,
159 0xdb, 0xf0, 0xde, 0x32, 0xbc, 0xa7, 0x72, 0x54,
160 0xbb, 0x4f, 0x56, 0x25, 0x81, 0xa3, 0xbc, 0x99,
161 0x1c, 0xf9, 0x4f, 0x22, 0x56, 0x52, 0xc2, 0x7f,
162 0x14, 0xea, 0xe9, 0x58, 0xae, 0x6a, 0xa6, 0x16,
164 0xe6, 0x11, 0x3b, 0xe6, 0x17, 0xf4, 0x5f, 0x3d,
165 0xe5, 0x3c, 0xff, 0x03, 0x91, 0x9a, 0x94, 0xc3,
166 0x2c, 0x92, 0x7b, 0x09, 0x3a, 0xc8, 0xf2, 0x3b,
167 0x47, 0xf7, 0x18, 0x9a, 0xad, 0xb9, 0xbc, 0x67,
169 0x80, 0xd0, 0xd2, 0x60, 0x52, 0xca, 0x45, 0xd5,
170 0x93, 0xab, 0x5f, 0xb3, 0x10, 0x25, 0x06, 0x39,
171 0x00, 0x83, 0xaf, 0xb5, 0xff, 0xe1, 0x07, 0xda,
172 0xcf, 0xcb, 0xa7, 0xdb, 0xe6, 0x01, 0xa1, 0x2b,
174 0x43, 0xaf, 0x1c, 0x76, 0x12, 0x67, 0x14, 0xdf,
175 0xa9, 0x50, 0xc3, 0x68, 0x78, 0x7c, 0x81, 0xae,
176 0x3b, 0xee, 0xcf, 0x95, 0x6c, 0x85, 0xc9, 0x62,
177 0x08, 0x6a, 0xe1, 0x6e, 0x40, 0xeb, 0xb0, 0xb4,
179 0x9a, 0xee, 0x89, 0x94, 0xd2, 0xd7, 0x4a, 0x5c,
180 0xdb, 0x7b, 0x1e, 0xf2, 0x94, 0xee, 0xd5, 0xc1,
181 0x52, 0x07, 0x24, 0xdd, 0x8e, 0xd5, 0x8c, 0x92,
182 0xd3, 0xf0, 0xe1, 0x74, 0xb0, 0xc3, 0x20, 0x45,
184 0x0b, 0x2a, 0xa5, 0x8c, 0xeb, 0x3b, 0xdb, 0x9e,
185 0x1e, 0xef, 0x66, 0xb3, 0x76, 0xe0, 0xc5, 0x65,
186 0xd5, 0xd8, 0xfe, 0x7b, 0xac, 0xb8, 0xda, 0x86,
187 0x6f, 0x85, 0x9a, 0xc5, 0x21, 0xf3, 0xd5, 0x71,
189 0x7a, 0x15, 0x23, 0xef, 0x3d, 0x97, 0x0a, 0x3a,
190 0x9b, 0x0b, 0x4d, 0x61, 0x0e, 0x02, 0x74, 0x9d,
191 0x37, 0xb8, 0xd5, 0x7c, 0x18, 0x85, 0xfe, 0x42,
192 0x06, 0xa7, 0xf3, 0x38, 0xe8, 0x35, 0x68, 0x66,
194 0x2c, 0x2d, 0xb8, 0xf7, 0x87, 0x66, 0x85, 0xf2,
195 0xcd, 0x9a, 0x2e, 0x0d, 0xdb, 0x64, 0xc9, 0xd5,
196 0xbf, 0x13, 0x90, 0x53, 0x71, 0xfc, 0x39, 0xe0,
197 0xfa, 0x86, 0xe1, 0x47, 0x72, 0x34, 0xa2, 0x97,
199 0x9d, 0xf0, 0x85, 0xeb, 0x25, 0x44, 0xeb, 0xf6,
200 0x2b, 0x50, 0x68, 0x6a, 0x71, 0xe6, 0xe8, 0x28,
201 0xdf, 0xed, 0x9d, 0xbe, 0x0b, 0x10, 0x6c, 0x94,
202 0x52, 0xce, 0xdd, 0xff, 0x3d, 0x13, 0x89, 0x90,
204 0xe6, 0xe5, 0xc4, 0x2c, 0xb2, 0xd4, 0x60, 0xc9,
205 0xd6, 0xe4, 0x79, 0x1a, 0x16, 0x81, 0xbb, 0x2e,
206 0x22, 0x2e, 0x54, 0x55, 0x8e, 0xb7, 0x8d, 0x52,
207 0x44, 0xe2, 0x17, 0xd1, 0xbf, 0xcf, 0x50, 0x58,
209 0x8f, 0x1f, 0x57, 0xe4, 0x4e, 0x12, 0x62, 0x10,
210 0xf0, 0x07, 0x63, 0xff, 0x57, 0xda, 0x20, 0x8a,
211 0x50, 0x93, 0xb8, 0xff, 0x79, 0x47, 0x53, 0x4a,
212 0x4c, 0x26, 0x0a, 0x17, 0x64, 0x2f, 0x72, 0xb2,
214 0xae, 0x4e, 0xf4, 0x79, 0x2e, 0xa1, 0x48, 0x60,
215 0x8c, 0xf1, 0x16, 0xcb, 0x2b, 0xff, 0x66, 0xe8,
216 0xfc, 0x74, 0x81, 0x12, 0x66, 0xcd, 0x64, 0x11,
217 0x12, 0xcd, 0x17, 0x80, 0x1e, 0xd3, 0x8b, 0x59,
219 0x91, 0xa7, 0x44, 0xef, 0xbf, 0x68, 0xb1, 0x92,
220 0xd0, 0x54, 0x9b, 0x60, 0x8b, 0xdb, 0x31, 0x91,
221 0xfc, 0x12, 0xa0, 0xe8, 0x35, 0x43, 0xce, 0xc5,
222 0xf8, 0x82, 0x25, 0x0b, 0x24, 0x4f, 0x78, 0xe4,
224 0x4b, 0x5d, 0x27, 0xd3, 0x36, 0x8f, 0x9c, 0x17,
225 0xd4, 0xb2, 0xa2, 0xb2, 0x16, 0xc7, 0xe7, 0x4e,
226 0x77, 0x14, 0xd2, 0xcc, 0x03, 0xe1, 0xe4, 0x45,
227 0x88, 0xcd, 0x99, 0x36, 0xde, 0x74, 0x35, 0x7c,
229 0x0e, 0xa1, 0x7c, 0xaf, 0xb8, 0x28, 0x61, 0x31,
230 0xbd, 0xa9, 0xe3, 0x75, 0x7b, 0x36, 0x10, 0xaa,
231 0x3f, 0x77, 0xa6, 0xd0, 0x57, 0x50, 0x53, 0xfc,
232 0x92, 0x6e, 0xea, 0x7e, 0x23, 0x7d, 0xf2, 0x89,
234 0x84, 0x8a, 0xf9, 0xf5, 0x7e, 0xb1, 0xa6, 0x16,
235 0xe2, 0xc3, 0x42, 0xc8, 0xce, 0xa5, 0x28, 0xb8,
236 0xa9, 0x5a, 0x5d, 0x16, 0xd9, 0xd8, 0x7b, 0xe9,
237 0xbb, 0x37, 0x84, 0xd0, 0xc3, 0x51, 0xc3, 0x2b,
239 0xc0, 0x43, 0x5c, 0xc3, 0x65, 0x4f, 0xb8, 0x5d,
240 0xd9, 0x33, 0x5b, 0xa9, 0x1a, 0xc3, 0xdb, 0xde,
241 0x1f, 0x85, 0xd5, 0x67, 0xd7, 0xad, 0x16, 0xf9,
242 0xde, 0x6e, 0x00, 0x9b, 0xca, 0x3f, 0x95, 0xb5,
244 0x92, 0x75, 0x47, 0xfe, 0x5e, 0x5e, 0x45, 0xe2,
245 0xfe, 0x99, 0xf1, 0x65, 0x1e, 0xa1, 0xcb, 0xf0,
246 0x97, 0xdc, 0x3a, 0x3d, 0x40, 0xdd, 0xd2, 0x1c,
247 0xee, 0x26, 0x05, 0x43, 0xc2, 0x88, 0xec, 0x6b,
249 0xc1, 0x17, 0xa3, 0x77, 0x0d, 0x3a, 0x34, 0x46,
250 0x9d, 0x50, 0xdf, 0xa7, 0xdb, 0x02, 0x03, 0x00,
251 0xd3, 0x06, 0xa3, 0x65, 0x37, 0x4f, 0xa8, 0x28,
252 0xc8, 0xb7, 0x80, 0xee, 0x1b, 0x9d, 0x7a, 0x34,
254 0x8f, 0xf2, 0x17, 0x8a, 0xe2, 0xdb, 0xe5, 0xe8,
255 0x72, 0xfa, 0xc7, 0x89, 0xa3, 0x4b, 0xc2, 0x28,
256 0xde, 0xbf, 0x54, 0xa8, 0x82, 0x74, 0x3c, 0xaa,
257 0xd1, 0x4f, 0x3a, 0x55, 0x0f, 0xdb, 0xe6, 0x8f,
259 0xab, 0xd0, 0x6c, 0x52, 0xed, 0x58, 0xff, 0x09,
260 0x12, 0x05, 0xd0, 0xf6, 0x27, 0x57, 0x4c, 0x8c,
261 0xbc, 0x1f, 0xe7, 0xcf, 0x79, 0x21, 0x0f, 0x5a,
262 0x22, 0x86, 0xf6, 0xe2, 0x3a, 0x27, 0xef, 0xa0,
264 0x63, 0x1f, 0x4a, 0xcb, 0x8d, 0x3c, 0xa4, 0x25,
265 0x3e, 0x30, 0x18, 0x49, 0xf1, 0x57, 0x57, 0x1d,
266 0x32, 0x11, 0xb6, 0xc1, 0x04, 0x53, 0x47, 0xbe,
267 0xfb, 0x7c, 0x77, 0xdf, 0x3c, 0x6c, 0xa7, 0xbd,
269 0xae, 0x88, 0xf2, 0x34, 0x2c, 0x23, 0x34, 0x45,
270 0x90, 0xbe, 0x20, 0x14, 0xfa, 0xb4, 0xf1, 0x79,
271 0xfd, 0x4b, 0xf7, 0xc9, 0x0d, 0xb1, 0x4f, 0xa4,
272 0x01, 0x8f, 0xcc, 0xe6, 0x89, 0xd2, 0x12, 0x7b,
274 0x93, 0xb8, 0x93, 0x85, 0x54, 0x6d, 0x71, 0x37,
275 0x9f, 0xe4, 0x1c, 0x39, 0xbc, 0x60, 0x2e, 0x8b,
276 0x7c, 0x8b, 0x2f, 0x78, 0xee, 0x91, 0x4d, 0x1f,
277 0x0a, 0xf0, 0xd4, 0x37, 0xa1, 0x89, 0xa8, 0xa4,
279 0x1d, 0x1e, 0x03, 0x6a, 0xbe, 0xef, 0x3f, 0x44,
280 0x84, 0x8c, 0xd7, 0x6e, 0xf6, 0xba, 0xa8, 0x89,
281 0xfc, 0xec, 0x56, 0xcd, 0x79, 0x67, 0xeb, 0x90,
282 0x9a, 0x46, 0x4b, 0xfc, 0x23, 0xc7, 0x24, 0x35,
284 0xa8, 0xe4, 0xed, 0xe4, 0xc5, 0xfe, 0x5e, 0x88,
285 0xd4, 0xfb, 0x19, 0x2e, 0x0a, 0x08, 0x21, 0xe9,
286 0x35, 0xba, 0x14, 0x5b, 0xbf, 0xc5, 0x9c, 0x25,
287 0x08, 0x28, 0x27, 0x55, 0xa5, 0xdf, 0x53, 0xa5,
289 0x8e, 0x4e, 0x37, 0xa3, 0xb9, 0x70, 0xf0, 0x79,
290 0xae, 0x9d, 0x22, 0xa4, 0x99, 0xa7, 0x14, 0xc8,
291 0x75, 0x76, 0x02, 0x73, 0xf7, 0x4a, 0x93, 0x98,
292 0x99, 0x5d, 0x32, 0xc0, 0x50, 0x27, 0xd8, 0x10,
294 0x61, 0xcf, 0xa4, 0x27, 0x92, 0xf9, 0x3b, 0x9f,
295 0xde, 0x36, 0xeb, 0x16, 0x3e, 0x97, 0x87, 0x09,
296 0xfa, 0xfa, 0x76, 0x16, 0xec, 0x3c, 0x7d, 0xad,
297 0x01, 0x35, 0x80, 0x6c, 0x3d, 0x91, 0xa2, 0x1b,
299 0xf0, 0x37, 0xc5, 0xd9, 0x16, 0x23, 0x28, 0x8b,
300 0x7d, 0x03, 0x02, 0xc1, 0xb9, 0x41, 0xb7, 0x26,
301 0x76, 0xa9, 0x43, 0xb3, 0x72, 0x65, 0x9d, 0xcd,
302 0x7d, 0x6e, 0xf4, 0x08, 0xa1, 0x1b, 0x40, 0xc0,
304 0x2a, 0x30, 0x63, 0x54, 0xca, 0x3e, 0xa9, 0x0b,
305 0x0e, 0x97, 0xea, 0xeb, 0xce, 0xa0, 0xa6, 0xd7,
306 0xc6, 0x52, 0x23, 0x99, 0xe8, 0x85, 0xc6, 0x13,
307 0xde, 0x82, 0x49, 0x22, 0xc8, 0x92, 0xc4, 0x90,
309 0x3c, 0xa6, 0xcd, 0xd7, 0x88, 0xa5, 0xbd, 0xc5,
310 0xef, 0x2d, 0xce, 0xeb, 0x16, 0xbc, 0xa3, 0x1e,
311 0x0a, 0x0d, 0x2c, 0x7e, 0x99, 0x21, 0xb6, 0xf7,
312 0x1d, 0x33, 0xe2, 0x5d, 0xd2, 0xf3, 0xcf, 0x53,
314 0xf7, 0x25, 0x78, 0x72, 0x1d, 0xb5, 0x6b, 0xf8,
315 0xf4, 0x95, 0x38, 0xb0, 0xae, 0x6e, 0xa4, 0x70,
316 0xc2, 0xfb, 0x13, 0x39, 0xdd, 0x26, 0x33, 0x3f,
317 0x13, 0x5f, 0x7d, 0xef, 0x45, 0x37, 0x6e, 0xc0,
319 0xe4, 0x49, 0xa0, 0x3e, 0xab, 0x35, 0x9e, 0x34,
320 0x09, 0x5f, 0x8b, 0x4b, 0x55, 0xcd, 0x7a, 0xc7,
321 0xc0, 0xec, 0x65, 0x10, 0xf2, 0xc4, 0xcc, 0x79,
322 0xfa, 0x6b, 0x1f, 0xee, 0x6b, 0x18, 0xc5, 0x9e,
324 0x73, 0xbd, 0x69, 0x78, 0xc5, 0x9f, 0x2b, 0x21,
325 0x94, 0x49, 0xb3, 0x67, 0x70, 0xfb, 0x31, 0x3f,
326 0xbe, 0x2d, 0xa2, 0x8f, 0x6b, 0x04, 0x27, 0x5f,
327 0x07, 0x1a, 0x1b, 0x19, 0x3d, 0xde, 0x20, 0x72