1 /*****************************************************************************
2  * csstables.h: CSS Tables for DVD unscrambling
3  *****************************************************************************
4  * Copyright (C) 1999-2001 VideoLAN
5  *
6  * Author: Stéphane Borel <stef@via.ecp.fr>
7  *
8  * based on:
9  *  - css-auth by Derek Fawcus <derek@spider.com>
10  *  - DVD CSS ioctls example program by Andrew T. Veliath <andrewtv@usa.net>
11  *  - The Divide and conquer attack by Frank A. Stevenson <frank@funcom.com>
12  *  - DeCSSPlus by Ethan Hawke
13  *  - DecVOB
14  *  see http://www.lemuria.org/DeCSS/ by Tom Vogt for more information.
15  *
16  * libdvdcss is free software; you can redistribute it and/or modify
17  * it under the terms of the GNU General Public License as published by
18  * the Free Software Foundation; either version 2 of the License, or
19  * (at your option) any later version.
20  *
21  * libdvdcss is distributed in the hope that it will be useful,
22  * but WITHOUT ANY WARRANTY; without even the implied warranty of
23  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24  * GNU General Public License for more details.
25  *
26  * You should have received a copy of the GNU General Public License along
27  * with libdvdcss; if not, write to the Free Software Foundation, Inc.,
28  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
29  *****************************************************************************/
30 
31 #ifndef DVDCSS_CSSTABLES_H
32 #define DVDCSS_CSSTABLES_H
33 
34 #include <stdint.h>
35 
36 static const uint8_t p_css_tab1[ 256 ] =
37 {
38     0x33, 0x73, 0x3b, 0x26, 0x63, 0x23, 0x6b, 0x76,
39     0x3e, 0x7e, 0x36, 0x2b, 0x6e, 0x2e, 0x66, 0x7b,
40     0xd3, 0x93, 0xdb, 0x06, 0x43, 0x03, 0x4b, 0x96,
41     0xde, 0x9e, 0xd6, 0x0b, 0x4e, 0x0e, 0x46, 0x9b,
42     0x57, 0x17, 0x5f, 0x82, 0xc7, 0x87, 0xcf, 0x12,
43     0x5a, 0x1a, 0x52, 0x8f, 0xca, 0x8a, 0xc2, 0x1f,
44     0xd9, 0x99, 0xd1, 0x00, 0x49, 0x09, 0x41, 0x90,
45     0xd8, 0x98, 0xd0, 0x01, 0x48, 0x08, 0x40, 0x91,
46     0x3d, 0x7d, 0x35, 0x24, 0x6d, 0x2d, 0x65, 0x74,
47     0x3c, 0x7c, 0x34, 0x25, 0x6c, 0x2c, 0x64, 0x75,
48     0xdd, 0x9d, 0xd5, 0x04, 0x4d, 0x0d, 0x45, 0x94,
49     0xdc, 0x9c, 0xd4, 0x05, 0x4c, 0x0c, 0x44, 0x95,
50     0x59, 0x19, 0x51, 0x80, 0xc9, 0x89, 0xc1, 0x10,
51     0x58, 0x18, 0x50, 0x81, 0xc8, 0x88, 0xc0, 0x11,
52     0xd7, 0x97, 0xdf, 0x02, 0x47, 0x07, 0x4f, 0x92,
53     0xda, 0x9a, 0xd2, 0x0f, 0x4a, 0x0a, 0x42, 0x9f,
54     0x53, 0x13, 0x5b, 0x86, 0xc3, 0x83, 0xcb, 0x16,
55     0x5e, 0x1e, 0x56, 0x8b, 0xce, 0x8e, 0xc6, 0x1b,
56     0xb3, 0xf3, 0xbb, 0xa6, 0xe3, 0xa3, 0xeb, 0xf6,
57     0xbe, 0xfe, 0xb6, 0xab, 0xee, 0xae, 0xe6, 0xfb,
58     0x37, 0x77, 0x3f, 0x22, 0x67, 0x27, 0x6f, 0x72,
59     0x3a, 0x7a, 0x32, 0x2f, 0x6a, 0x2a, 0x62, 0x7f,
60     0xb9, 0xf9, 0xb1, 0xa0, 0xe9, 0xa9, 0xe1, 0xf0,
61     0xb8, 0xf8, 0xb0, 0xa1, 0xe8, 0xa8, 0xe0, 0xf1,
62     0x5d, 0x1d, 0x55, 0x84, 0xcd, 0x8d, 0xc5, 0x14,
63     0x5c, 0x1c, 0x54, 0x85, 0xcc, 0x8c, 0xc4, 0x15,
64     0xbd, 0xfd, 0xb5, 0xa4, 0xed, 0xad, 0xe5, 0xf4,
65     0xbc, 0xfc, 0xb4, 0xa5, 0xec, 0xac, 0xe4, 0xf5,
66     0x39, 0x79, 0x31, 0x20, 0x69, 0x29, 0x61, 0x70,
67     0x38, 0x78, 0x30, 0x21, 0x68, 0x28, 0x60, 0x71,
68     0xb7, 0xf7, 0xbf, 0xa2, 0xe7, 0xa7, 0xef, 0xf2,
69     0xba, 0xfa, 0xb2, 0xaf, 0xea, 0xaa, 0xe2, 0xff
70 };
71 
72 static const uint8_t p_css_tab2[ 256 ] =
73 {
74     0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
75     0x09, 0x08, 0x0b, 0x0a, 0x0d, 0x0c, 0x0f, 0x0e,
76     0x12, 0x13, 0x10, 0x11, 0x16, 0x17, 0x14, 0x15,
77     0x1b, 0x1a, 0x19, 0x18, 0x1f, 0x1e, 0x1d, 0x1c,
78     0x24, 0x25, 0x26, 0x27, 0x20, 0x21, 0x22, 0x23,
79     0x2d, 0x2c, 0x2f, 0x2e, 0x29, 0x28, 0x2b, 0x2a,
80     0x36, 0x37, 0x34, 0x35, 0x32, 0x33, 0x30, 0x31,
81     0x3f, 0x3e, 0x3d, 0x3c, 0x3b, 0x3a, 0x39, 0x38,
82     0x49, 0x48, 0x4b, 0x4a, 0x4d, 0x4c, 0x4f, 0x4e,
83     0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
84     0x5b, 0x5a, 0x59, 0x58, 0x5f, 0x5e, 0x5d, 0x5c,
85     0x52, 0x53, 0x50, 0x51, 0x56, 0x57, 0x54, 0x55,
86     0x6d, 0x6c, 0x6f, 0x6e, 0x69, 0x68, 0x6b, 0x6a,
87     0x64, 0x65, 0x66, 0x67, 0x60, 0x61, 0x62, 0x63,
88     0x7f, 0x7e, 0x7d, 0x7c, 0x7b, 0x7a, 0x79, 0x78,
89     0x76, 0x77, 0x74, 0x75, 0x72, 0x73, 0x70, 0x71,
90     0x92, 0x93, 0x90, 0x91, 0x96, 0x97, 0x94, 0x95,
91     0x9b, 0x9a, 0x99, 0x98, 0x9f, 0x9e, 0x9d, 0x9c,
92     0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
93     0x89, 0x88, 0x8b, 0x8a, 0x8d, 0x8c, 0x8f, 0x8e,
94     0xb6, 0xb7, 0xb4, 0xb5, 0xb2, 0xb3, 0xb0, 0xb1,
95     0xbf, 0xbe, 0xbd, 0xbc, 0xbb, 0xba, 0xb9, 0xb8,
96     0xa4, 0xa5, 0xa6, 0xa7, 0xa0, 0xa1, 0xa2, 0xa3,
97     0xad, 0xac, 0xaf, 0xae, 0xa9, 0xa8, 0xab, 0xaa,
98     0xdb, 0xda, 0xd9, 0xd8, 0xdf, 0xde, 0xdd, 0xdc,
99     0xd2, 0xd3, 0xd0, 0xd1, 0xd6, 0xd7, 0xd4, 0xd5,
100     0xc9, 0xc8, 0xcb, 0xca, 0xcd, 0xcc, 0xcf, 0xce,
101     0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
102     0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
103     0xf6, 0xf7, 0xf4, 0xf5, 0xf2, 0xf3, 0xf0, 0xf1,
104     0xed, 0xec, 0xef, 0xee, 0xe9, 0xe8, 0xeb, 0xea,
105     0xe4, 0xe5, 0xe6, 0xe7, 0xe0, 0xe1, 0xe2, 0xe3
106 };
107 
108 static const uint8_t p_css_tab3[ 512 ] =
109 {
110     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
111     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
112     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
113     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
114     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
115     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
116     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
117     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
118     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
119     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
120     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
121     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
122     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
123     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
124     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
125     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
126     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
127     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
128     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
129     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
130     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
131     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
132     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
133     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
134     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
135     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
136     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
137     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
138     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
139     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
140     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
141     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
142     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
143     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
144     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
145     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
146     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
147     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
148     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
149     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
150     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
151     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
152     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
153     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
154     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
155     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
156     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
157     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
158     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
159     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
160     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
161     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
162     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
163     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
164     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
165     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
166     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
167     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
168     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
169     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
170     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
171     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
172     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff,
173     0x00, 0x24, 0x49, 0x6d, 0x92, 0xb6, 0xdb, 0xff
174 };
175 
176 static const uint8_t p_css_tab4[ 256 ] =
177 {
178     0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
179     0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
180     0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
181     0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
182     0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4,
183     0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4,
184     0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec,
185     0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
186     0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2,
187     0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
188     0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea,
189     0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
190     0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6,
191     0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
192     0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee,
193     0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe,
194     0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1,
195     0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1,
196     0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9,
197     0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9,
198     0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5,
199     0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5,
200     0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed,
201     0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd,
202     0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3,
203     0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3,
204     0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb,
205     0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb,
206     0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7,
207     0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7,
208     0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
209     0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
210 };
211 
212 static const uint8_t p_css_tab5[ 256 ] =
213 {
214     0xff, 0x7f, 0xbf, 0x3f, 0xdf, 0x5f, 0x9f, 0x1f,
215     0xef, 0x6f, 0xaf, 0x2f, 0xcf, 0x4f, 0x8f, 0x0f,
216     0xf7, 0x77, 0xb7, 0x37, 0xd7, 0x57, 0x97, 0x17,
217     0xe7, 0x67, 0xa7, 0x27, 0xc7, 0x47, 0x87, 0x07,
218     0xfb, 0x7b, 0xbb, 0x3b, 0xdb, 0x5b, 0x9b, 0x1b,
219     0xeb, 0x6b, 0xab, 0x2b, 0xcb, 0x4b, 0x8b, 0x0b,
220     0xf3, 0x73, 0xb3, 0x33, 0xd3, 0x53, 0x93, 0x13,
221     0xe3, 0x63, 0xa3, 0x23, 0xc3, 0x43, 0x83, 0x03,
222     0xfd, 0x7d, 0xbd, 0x3d, 0xdd, 0x5d, 0x9d, 0x1d,
223     0xed, 0x6d, 0xad, 0x2d, 0xcd, 0x4d, 0x8d, 0x0d,
224     0xf5, 0x75, 0xb5, 0x35, 0xd5, 0x55, 0x95, 0x15,
225     0xe5, 0x65, 0xa5, 0x25, 0xc5, 0x45, 0x85, 0x05,
226     0xf9, 0x79, 0xb9, 0x39, 0xd9, 0x59, 0x99, 0x19,
227     0xe9, 0x69, 0xa9, 0x29, 0xc9, 0x49, 0x89, 0x09,
228     0xf1, 0x71, 0xb1, 0x31, 0xd1, 0x51, 0x91, 0x11,
229     0xe1, 0x61, 0xa1, 0x21, 0xc1, 0x41, 0x81, 0x01,
230     0xfe, 0x7e, 0xbe, 0x3e, 0xde, 0x5e, 0x9e, 0x1e,
231     0xee, 0x6e, 0xae, 0x2e, 0xce, 0x4e, 0x8e, 0x0e,
232     0xf6, 0x76, 0xb6, 0x36, 0xd6, 0x56, 0x96, 0x16,
233     0xe6, 0x66, 0xa6, 0x26, 0xc6, 0x46, 0x86, 0x06,
234     0xfa, 0x7a, 0xba, 0x3a, 0xda, 0x5a, 0x9a, 0x1a,
235     0xea, 0x6a, 0xaa, 0x2a, 0xca, 0x4a, 0x8a, 0x0a,
236     0xf2, 0x72, 0xb2, 0x32, 0xd2, 0x52, 0x92, 0x12,
237     0xe2, 0x62, 0xa2, 0x22, 0xc2, 0x42, 0x82, 0x02,
238     0xfc, 0x7c, 0xbc, 0x3c, 0xdc, 0x5c, 0x9c, 0x1c,
239     0xec, 0x6c, 0xac, 0x2c, 0xcc, 0x4c, 0x8c, 0x0c,
240     0xf4, 0x74, 0xb4, 0x34, 0xd4, 0x54, 0x94, 0x14,
241     0xe4, 0x64, 0xa4, 0x24, 0xc4, 0x44, 0x84, 0x04,
242     0xf8, 0x78, 0xb8, 0x38, 0xd8, 0x58, 0x98, 0x18,
243     0xe8, 0x68, 0xa8, 0x28, 0xc8, 0x48, 0x88, 0x08,
244     0xf0, 0x70, 0xb0, 0x30, 0xd0, 0x50, 0x90, 0x10,
245     0xe0, 0x60, 0xa0, 0x20, 0xc0, 0x40, 0x80, 0x00
246 };
247 
248 static const uint8_t p_crypt_tab0[ 256 ] =
249 {
250     0xB7, 0xF4, 0x82, 0x57, 0xDA, 0x4D, 0xDB, 0xE2,
251     0x2F, 0x52, 0x1A, 0xA8, 0x68, 0x5A, 0x8A, 0xFF,
252     0xFB, 0x0E, 0x6D, 0x35, 0xF7, 0x5C, 0x76, 0x12,
253     0xCE, 0x25, 0x79, 0x29, 0x39, 0x62, 0x08, 0x24,
254     0xA5, 0x85, 0x7B, 0x56, 0x01, 0x23, 0x68, 0xCF,
255     0x0A, 0xE2, 0x5A, 0xED, 0x3D, 0x59, 0xB0, 0xA9,
256     0xB0, 0x2C, 0xF2, 0xB8, 0xEF, 0x32, 0xA9, 0x40,
257     0x80, 0x71, 0xAF, 0x1E, 0xDE, 0x8F, 0x58, 0x88,
258     0xB8, 0x3A, 0xD0, 0xFC, 0xC4, 0x1E, 0xB5, 0xA0,
259     0xBB, 0x3B, 0x0F, 0x01, 0x7E, 0x1F, 0x9F, 0xD9,
260     0xAA, 0xB8, 0x3D, 0x9D, 0x74, 0x1E, 0x25, 0xDB,
261     0x37, 0x56, 0x8F, 0x16, 0xBA, 0x49, 0x2B, 0xAC,
262     0xD0, 0xBD, 0x95, 0x20, 0xBE, 0x7A, 0x28, 0xD0,
263     0x51, 0x64, 0x63, 0x1C, 0x7F, 0x66, 0x10, 0xBB,
264     0xC4, 0x56, 0x1A, 0x04, 0x6E, 0x0A, 0xEC, 0x9C,
265     0xD6, 0xE8, 0x9A, 0x7A, 0xCF, 0x8C, 0xDB, 0xB1,
266     0xEF, 0x71, 0xDE, 0x31, 0xFF, 0x54, 0x3E, 0x5E,
267     0x07, 0x69, 0x96, 0xB0, 0xCF, 0xDD, 0x9E, 0x47,
268     0xC7, 0x96, 0x8F, 0xE4, 0x2B, 0x59, 0xC6, 0xEE,
269     0xB9, 0x86, 0x9A, 0x64, 0x84, 0x72, 0xE2, 0x5B,
270     0xA2, 0x96, 0x58, 0x99, 0x50, 0x03, 0xF5, 0x38,
271     0x4D, 0x02, 0x7D, 0xE7, 0x7D, 0x75, 0xA7, 0xB8,
272     0x67, 0x87, 0x84, 0x3F, 0x1D, 0x11, 0xE5, 0xFC,
273     0x1E, 0xD3, 0x83, 0x16, 0xA5, 0x29, 0xF6, 0xC7,
274     0x15, 0x61, 0x29, 0x1A, 0x43, 0x4F, 0x9B, 0xAF,
275     0xC5, 0x87, 0x34, 0x6C, 0x0F, 0x3B, 0xA8, 0x1D,
276     0x45, 0x58, 0x25, 0xDC, 0xA8, 0xA3, 0x3B, 0xD1,
277     0x79, 0x1B, 0x48, 0xF2, 0xE9, 0x93, 0x1F, 0xFC,
278     0xDB, 0x2A, 0x90, 0xA9, 0x8A, 0x3D, 0x39, 0x18,
279     0xA3, 0x8E, 0x58, 0x6C, 0xE0, 0x12, 0xBB, 0x25,
280     0xCD, 0x71, 0x22, 0xA2, 0x64, 0xC6, 0xE7, 0xFB,
281     0xAD, 0x94, 0x77, 0x04, 0x9A, 0x39, 0xCF, 0x7C
282 };
283 
284 static const uint8_t p_crypt_tab1[ 256 ] =
285 {
286     0x8C, 0x47, 0xB0, 0xE1, 0xEB, 0xFC, 0xEB, 0x56,
287     0x10, 0xE5, 0x2C, 0x1A, 0x5D, 0xEF, 0xBE, 0x4F,
288     0x08, 0x75, 0x97, 0x4B, 0x0E, 0x25, 0x8E, 0x6E,
289     0x39, 0x5A, 0x87, 0x53, 0xC4, 0x1F, 0xF4, 0x5C,
290     0x4E, 0xE6, 0x99, 0x30, 0xE0, 0x42, 0x88, 0xAB,
291     0xE5, 0x85, 0xBC, 0x8F, 0xD8, 0x3C, 0x54, 0xC9,
292     0x53, 0x47, 0x18, 0xD6, 0x06, 0x5B, 0x41, 0x2C,
293     0x67, 0x1E, 0x41, 0x74, 0x33, 0xE2, 0xB4, 0xE0,
294     0x23, 0x29, 0x42, 0xEA, 0x55, 0x0F, 0x25, 0xB4,
295     0x24, 0x2C, 0x99, 0x13, 0xEB, 0x0A, 0x0B, 0xC9,
296     0xF9, 0x63, 0x67, 0x43, 0x2D, 0xC7, 0x7D, 0x07,
297     0x60, 0x89, 0xD1, 0xCC, 0xE7, 0x94, 0x77, 0x74,
298     0x9B, 0x7E, 0xD7, 0xE6, 0xFF, 0xBB, 0x68, 0x14,
299     0x1E, 0xA3, 0x25, 0xDE, 0x3A, 0xA3, 0x54, 0x7B,
300     0x87, 0x9D, 0x50, 0xCA, 0x27, 0xC3, 0xA4, 0x50,
301     0x91, 0x27, 0xD4, 0xB0, 0x82, 0x41, 0x97, 0x79,
302     0x94, 0x82, 0xAC, 0xC7, 0x8E, 0xA5, 0x4E, 0xAA,
303     0x78, 0x9E, 0xE0, 0x42, 0xBA, 0x28, 0xEA, 0xB7,
304     0x74, 0xAD, 0x35, 0xDA, 0x92, 0x60, 0x7E, 0xD2,
305     0x0E, 0xB9, 0x24, 0x5E, 0x39, 0x4F, 0x5E, 0x63,
306     0x09, 0xB5, 0xFA, 0xBF, 0xF1, 0x22, 0x55, 0x1C,
307     0xE2, 0x25, 0xDB, 0xC5, 0xD8, 0x50, 0x03, 0x98,
308     0xC4, 0xAC, 0x2E, 0x11, 0xB4, 0x38, 0x4D, 0xD0,
309     0xB9, 0xFC, 0x2D, 0x3C, 0x08, 0x04, 0x5A, 0xEF,
310     0xCE, 0x32, 0xFB, 0x4C, 0x92, 0x1E, 0x4B, 0xFB,
311     0x1A, 0xD0, 0xE2, 0x3E, 0xDA, 0x6E, 0x7C, 0x4D,
312     0x56, 0xC3, 0x3F, 0x42, 0xB1, 0x3A, 0x23, 0x4D,
313     0x6E, 0x84, 0x56, 0x68, 0xF4, 0x0E, 0x03, 0x64,
314     0xD0, 0xA9, 0x92, 0x2F, 0x8B, 0xBC, 0x39, 0x9C,
315     0xAC, 0x09, 0x5E, 0xEE, 0xE5, 0x97, 0xBF, 0xA5,
316     0xCE, 0xFA, 0x28, 0x2C, 0x6D, 0x4F, 0xEF, 0x77,
317     0xAA, 0x1B, 0x79, 0x8E, 0x97, 0xB4, 0xC3, 0xF4
318 };
319 
320 static const uint8_t p_crypt_tab2[ 256 ] =
321 {
322     0xB7, 0x75, 0x81, 0xD5, 0xDC, 0xCA, 0xDE, 0x66,
323     0x23, 0xDF, 0x15, 0x26, 0x62, 0xD1, 0x83, 0x77,
324     0xE3, 0x97, 0x76, 0xAF, 0xE9, 0xC3, 0x6B, 0x8E,
325     0xDA, 0xB0, 0x6E, 0xBF, 0x2B, 0xF1, 0x19, 0xB4,
326     0x95, 0x34, 0x48, 0xE4, 0x37, 0x94, 0x5D, 0x7B,
327     0x36, 0x5F, 0x65, 0x53, 0x07, 0xE2, 0x89, 0x11,
328     0x98, 0x85, 0xD9, 0x12, 0xC1, 0x9D, 0x84, 0xEC,
329     0xA4, 0xD4, 0x88, 0xB8, 0xFC, 0x2C, 0x79, 0x28,
330     0xD8, 0xDB, 0xB3, 0x1E, 0xA2, 0xF9, 0xD0, 0x44,
331     0xD7, 0xD6, 0x60, 0xEF, 0x14, 0xF4, 0xF6, 0x31,
332     0xD2, 0x41, 0x46, 0x67, 0x0A, 0xE1, 0x58, 0x27,
333     0x43, 0xA3, 0xF8, 0xE0, 0xC8, 0xBA, 0x5A, 0x5C,
334     0x80, 0x6C, 0xC6, 0xF2, 0xE8, 0xAD, 0x7D, 0x04,
335     0x0D, 0xB9, 0x3C, 0xC2, 0x25, 0xBD, 0x49, 0x63,
336     0x8C, 0x9F, 0x51, 0xCE, 0x20, 0xC5, 0xA1, 0x50,
337     0x92, 0x2D, 0xDD, 0xBC, 0x8D, 0x4F, 0x9A, 0x71,
338     0x2F, 0x30, 0x1D, 0x73, 0x39, 0x13, 0xFB, 0x1A,
339     0xCB, 0x24, 0x59, 0xFE, 0x05, 0x96, 0x57, 0x0F,
340     0x1F, 0xCF, 0x54, 0xBE, 0xF5, 0x06, 0x1B, 0xB2,
341     0x6D, 0xD3, 0x4D, 0x32, 0x56, 0x21, 0x33, 0x0B,
342     0x52, 0xE7, 0xAB, 0xEB, 0xA6, 0x74, 0x00, 0x4C,
343     0xB1, 0x7F, 0x82, 0x99, 0x87, 0x0E, 0x5E, 0xC0,
344     0x8F, 0xEE, 0x6F, 0x55, 0xF3, 0x7E, 0x08, 0x90,
345     0xFA, 0xB6, 0x64, 0x70, 0x47, 0x4A, 0x17, 0xA7,
346     0xB5, 0x40, 0x8A, 0x38, 0xE5, 0x68, 0x3E, 0x8B,
347     0x69, 0xAA, 0x9B, 0x42, 0xA5, 0x10, 0x01, 0x35,
348     0xFD, 0x61, 0x9E, 0xE6, 0x16, 0x9C, 0x86, 0xED,
349     0xCD, 0x2E, 0xFF, 0xC4, 0x5B, 0xA0, 0xAE, 0xCC,
350     0x4B, 0x3B, 0x03, 0xBB, 0x1C, 0x2A, 0xAC, 0x0C,
351     0x3F, 0x93, 0xC7, 0x72, 0x7A, 0x09, 0x22, 0x3D,
352     0x45, 0x78, 0xA9, 0xA8, 0xEA, 0xC9, 0x6A, 0xF7,
353     0x29, 0x91, 0xF0, 0x02, 0x18, 0x3A, 0x4E, 0x7C
354 };
355 
356 static const uint8_t p_crypt_tab3[ 288 ] =
357 {
358     0x73, 0x51, 0x95, 0xE1, 0x12, 0xE4, 0xC0, 0x58,
359     0xEE, 0xF2, 0x08, 0x1B, 0xA9, 0xFA, 0x98, 0x4C,
360     0xA7, 0x33, 0xE2, 0x1B, 0xA7, 0x6D, 0xF5, 0x30,
361     0x97, 0x1D, 0xF3, 0x02, 0x60, 0x5A, 0x82, 0x0F,
362     0x91, 0xD0, 0x9C, 0x10, 0x39, 0x7A, 0x83, 0x85,
363     0x3B, 0xB2, 0xB8, 0xAE, 0x0C, 0x09, 0x52, 0xEA,
364     0x1C, 0xE1, 0x8D, 0x66, 0x4F, 0xF3, 0xDA, 0x92,
365     0x29, 0xB9, 0xD5, 0xC5, 0x77, 0x47, 0x22, 0x53,
366     0x14, 0xF7, 0xAF, 0x22, 0x64, 0xDF, 0xC6, 0x72,
367     0x12, 0xF3, 0x75, 0xDA, 0xD7, 0xD7, 0xE5, 0x02,
368     0x9E, 0xED, 0xDA, 0xDB, 0x4C, 0x47, 0xCE, 0x91,
369     0x06, 0x06, 0x6D, 0x55, 0x8B, 0x19, 0xC9, 0xEF,
370     0x8C, 0x80, 0x1A, 0x0E, 0xEE, 0x4B, 0xAB, 0xF2,
371     0x08, 0x5C, 0xE9, 0x37, 0x26, 0x5E, 0x9A, 0x90,
372     0x00, 0xF3, 0x0D, 0xB2, 0xA6, 0xA3, 0xF7, 0x26,
373     0x17, 0x48, 0x88, 0xC9, 0x0E, 0x2C, 0xC9, 0x02,
374     0xE7, 0x18, 0x05, 0x4B, 0xF3, 0x39, 0xE1, 0x20,
375     0x02, 0x0D, 0x40, 0xC7, 0xCA, 0xB9, 0x48, 0x30,
376     0x57, 0x67, 0xCC, 0x06, 0xBF, 0xAC, 0x81, 0x08,
377     0x24, 0x7A, 0xD4, 0x8B, 0x19, 0x8E, 0xAC, 0xB4,
378     0x5A, 0x0F, 0x73, 0x13, 0xAC, 0x9E, 0xDA, 0xB6,
379     0xB8, 0x96, 0x5B, 0x60, 0x88, 0xE1, 0x81, 0x3F,
380     0x07, 0x86, 0x37, 0x2D, 0x79, 0x14, 0x52, 0xEA,
381     0x73, 0xDF, 0x3D, 0x09, 0xC8, 0x25, 0x48, 0xD8,
382     0x75, 0x60, 0x9A, 0x08, 0x27, 0x4A, 0x2C, 0xB9,
383     0xA8, 0x8B, 0x8A, 0x73, 0x62, 0x37, 0x16, 0x02,
384     0xBD, 0xC1, 0x0E, 0x56, 0x54, 0x3E, 0x14, 0x5F,
385     0x8C, 0x8F, 0x6E, 0x75, 0x1C, 0x07, 0x39, 0x7B,
386     0x4B, 0xDB, 0xD3, 0x4B, 0x1E, 0xC8, 0x7E, 0xFE,
387     0x3E, 0x72, 0x16, 0x83, 0x7D, 0xEE, 0xF5, 0xCA,
388     0xC5, 0x18, 0xF9, 0xD8, 0x68, 0xAB, 0x38, 0x85,
389     0xA8, 0xF0, 0xA1, 0x73, 0x9F, 0x5D, 0x19, 0x0B,
390     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
391     0x33, 0x72, 0x39, 0x25, 0x67, 0x26, 0x6D, 0x71,
392     0x36, 0x77, 0x3C, 0x20, 0x62, 0x23, 0x68, 0x74,
393     0xC3, 0x82, 0xC9, 0x15, 0x57, 0x16, 0x5D, 0x81
394 };
395 
396 #endif /* DVDCSS_CSSTABLES_H */
397