some drc integration work
[pcsx_rearmed.git] / plugins / dfxvideo / hq3x.h
... / ...
CommitLineData
1/*
2 * This file is part of the Advance project.
3 *
4 * Copyright (C) 2004 Andrea Mazzoleni
5 *
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 2 of the License, or
9 * (at your option) any later version.
10 *
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.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 *
20 * In addition, as a special exception, Andrea Mazzoleni
21 * gives permission to link the code of this program with
22 * the MAME library (or with modified versions of MAME that use the
23 * same license as MAME), and distribute linked combinations including
24 * the two. You must obey the GNU General Public License in all
25 * respects for all of the code used other than MAME. If you modify
26 * this file, you may extend this exception to your version of the
27 * file, but you are not obligated to do so. If you do not wish to
28 * do so, delete this exception statement from your version.
29 */
30
31/*
32 * This effect is a rewritten implementation of the hq effect made by Maxim Stepin
33 */
34
35#define P0 dst0[0]
36#define P1 dst0[1]
37#define P2 dst0[2]
38#define P3 dst1[0]
39#define P4 dst1[1]
40#define P5 dst1[2]
41#define P6 dst2[0]
42#define P7 dst2[1]
43#define P8 dst2[2]
44#define MUR interp_32_diff(c[1], c[5])
45#define MDR interp_32_diff(c[5], c[7])
46#define MDL interp_32_diff(c[7], c[3])
47#define MUL interp_32_diff(c[3], c[1])
48#define IC(p0) c[p0]
49#define I11(p0,p1) interp_32_11(c[p0], c[p1])
50#define I211(p0,p1,p2) interp_32_211(c[p0], c[p1], c[p2])
51#define I31(p0,p1) interp_32_31(c[p0], c[p1])
52#define I332(p0,p1,p2) interp_32_332(c[p0], c[p1], c[p2])
53#define I431(p0,p1,p2) interp_32_431(c[p0], c[p1], c[p2])
54#define I521(p0,p1,p2) interp_32_521(c[p0], c[p1], c[p2])
55#define I53(p0,p1) interp_32_53(c[p0], c[p1])
56#define I611(p0,p1,p2) interp_32_611(c[p0], c[p1], c[p2])
57#define I71(p0,p1) interp_32_71(c[p0], c[p1])
58#define I772(p0,p1,p2) interp_32_772(c[p0], c[p1], c[p2])
59#define I97(p0,p1) interp_32_97(c[p0], c[p1])
60#define I1411(p0,p1,p2) interp_32_1411(c[p0], c[p1], c[p2])
61#define I151(p0,p1) interp_32_151(c[p0], c[p1])
62
63case 0 :
64case 1 :
65case 4 :
66case 5 :
67case 32 :
68case 33 :
69case 36 :
70case 37 :
71case 128 :
72case 129 :
73case 132 :
74case 133 :
75case 160 :
76case 161 :
77case 164 :
78case 165 :
79{
80P0 = I211(4, 1, 3);
81P1 = I31(4,1);
82P2 = I211(4, 1, 5);
83P3 = I31(4, 3);
84P4 = IC(4);
85P5 = I31(4,5);
86P6 = I211(4, 3, 7);
87P7 = I31(4, 7);
88P8 = I211(4, 5, 7);
89
90} break;
91case 2 :
92case 34 :
93case 130 :
94case 162 :
95{
96P0 = I31(4, 0);
97P1 = IC(4);
98P2 = I31(4, 2);
99P3 = I31(4, 3);
100P4 = IC(4);
101P5 = I31(4,5);
102P6 = I211(4, 3, 7);
103P7 = I31(4, 7);
104P8 = I211(4, 5, 7);
105} break;
106case 3 :
107case 35 :
108case 131 :
109case 163 :
110{
111P0 = I31(4, 3);
112P1 = IC(4);
113P2 = I31(4, 2);
114P3 = I31(4, 3);
115P4 = IC(4);
116P5 = I31(4,5);
117P6 = I211(4, 3, 7);
118P7 = I31(4, 7);
119P8 = I211(4, 5, 7);
120} break;
121case 6 :
122case 38 :
123case 134 :
124case 166 :
125{
126P0 = I31(4, 0);
127P1 = IC(4);
128P2 = I31(4,5);
129P3 = I31(4, 3);
130P4 = IC(4);
131P5 = I31(4,5);
132P6 = I211(4, 3, 7);
133P7 = I31(4, 7);
134P8 = I211(4, 5, 7);
135} break;
136case 7 :
137case 39 :
138case 135 :
139case 167 :
140{
141P0 = I31(4, 3);
142P1 = IC(4);
143P2 = I31(4,5);
144P3 = I31(4, 3);
145P4 = IC(4);
146P5 = I31(4,5);
147P6 = I211(4, 3, 7);
148P7 = I31(4, 7);
149P8 = I211(4, 5, 7);
150} break;
151case 8 :
152case 12 :
153case 136 :
154case 140 :
155{
156P0 = I31(4, 0);
157P1 = I31(4,1);
158P2 = I211(4, 1, 5);
159P3 = IC(4);
160P4 = IC(4);
161P5 = I31(4,5);
162P6 = I31(4, 6);
163P7 = I31(4, 7);
164P8 = I211(4, 5, 7);
165} break;
166case 9 :
167case 13 :
168case 137 :
169case 141 :
170{
171P0 = I31(4,1);
172P1 = I31(4,1);
173P2 = I211(4, 1, 5);
174P3 = IC(4);
175P4 = IC(4);
176P5 = I31(4,5);
177P6 = I31(4, 6);
178P7 = I31(4, 7);
179P8 = I211(4, 5, 7);
180} break;
181case 10 :
182case 138 :
183{
184P2 = I31(4, 2);
185P4 = IC(4);
186P5 = I31(4,5);
187P6 = I31(4, 6);
188P7 = I31(4, 7);
189P8 = I211(4, 5, 7);
190if (MUL) {
191 P0 = I31(4, 0);
192 P1 = IC(4);
193 P3 = IC(4);
194} else {
195 P0 = I772(1, 3, 4);
196 P1 = I71(4, 1);
197 P3 = I71(4, 3);
198}
199} break;
200case 11 :
201case 139 :
202{
203P2 = I31(4, 2);
204P4 = IC(4);
205P5 = I31(4,5);
206P6 = I31(4, 6);
207P7 = I31(4, 7);
208P8 = I211(4, 5, 7);
209if (MUL) {
210 P0 = IC(4);
211 P1 = IC(4);
212 P3 = IC(4);
213} else {
214 P0 = I772(1, 3, 4);
215 P1 = I71(4, 1);
216 P3 = I71(4, 3);
217}
218} break;
219case 14 :
220case 142 :
221{
222P4 = IC(4);
223P5 = I31(4,5);
224P6 = I31(4, 6);
225P7 = I31(4, 7);
226P8 = I211(4, 5, 7);
227if (MUL) {
228 P0 = I31(4, 0);
229 P1 = IC(4);
230 P2 = I31(4,5);
231 P3 = IC(4);
232} else {
233 P0 = I11(1, 3);
234 P1 = I31(1, 4);
235 P2 = I211(4, 1, 5);
236 P3 = I31(4, 3);
237}
238} break;
239case 15 :
240case 143 :
241{
242P4 = IC(4);
243P5 = I31(4,5);
244P6 = I31(4, 6);
245P7 = I31(4, 7);
246P8 = I211(4, 5, 7);
247if (MUL) {
248 P0 = IC(4);
249 P1 = IC(4);
250 P2 = I31(4,5);
251 P3 = IC(4);
252} else {
253 P0 = I11(1, 3);
254 P1 = I31(1, 4);
255 P2 = I211(4, 1, 5);
256 P3 = I31(4, 3);
257}
258} break;
259case 16 :
260case 17 :
261case 48 :
262case 49 :
263{
264P0 = I211(4, 1, 3);
265P1 = I31(4,1);
266P2 = I31(4, 2);
267P3 = I31(4, 3);
268P4 = IC(4);
269P5 = IC(4);
270P6 = I211(4, 3, 7);
271P7 = I31(4, 7);
272P8 = I31(4, 8);
273} break;
274case 18 :
275case 50 :
276{
277P0 = I31(4, 0);
278P3 = I31(4, 3);
279P4 = IC(4);
280P6 = I211(4, 3, 7);
281P7 = I31(4, 7);
282P8 = I31(4, 8);
283if (MUR) {
284 P1 = IC(4);
285 P2 = I31(4, 2);
286 P5 = IC(4);
287} else {
288 P1 = I71(4, 1);
289 P2 = I772(1, 5, 4);
290 P5 = I71(4, 5);
291}
292} break;
293case 19 :
294case 51 :
295{
296P3 = I31(4, 3);
297P4 = IC(4);
298P6 = I211(4, 3, 7);
299P7 = I31(4, 7);
300P8 = I31(4, 8);
301if (MUR) {
302 P0 = I31(4, 3);
303 P1 = IC(4);
304 P2 = I31(4, 2);
305 P5 = IC(4);
306} else {
307 P0 = I211(4, 1, 3);
308 P1 = I31(1, 4);
309 P2 = I11(1, 5);
310 P5 = I31(4,5);
311}
312} break;
313case 20 :
314case 21 :
315case 52 :
316case 53 :
317{
318P0 = I211(4, 1, 3);
319P1 = I31(4,1);
320P2 = I31(4,1);
321P3 = I31(4, 3);
322P4 = IC(4);
323P5 = IC(4);
324P6 = I211(4, 3, 7);
325P7 = I31(4, 7);
326P8 = I31(4, 8);
327} break;
328case 22 :
329case 54 :
330{
331P0 = I31(4, 0);
332P3 = I31(4, 3);
333P4 = IC(4);
334P6 = I211(4, 3, 7);
335P7 = I31(4, 7);
336P8 = I31(4, 8);
337if (MUR) {
338 P1 = IC(4);
339 P2 = IC(4);
340 P5 = IC(4);
341} else {
342 P1 = I71(4, 1);
343 P2 = I772(1, 5, 4);
344 P5 = I71(4, 5);
345}
346} break;
347case 23 :
348case 55 :
349{
350P3 = I31(4, 3);
351P4 = IC(4);
352P6 = I211(4, 3, 7);
353P7 = I31(4, 7);
354P8 = I31(4, 8);
355if (MUR) {
356 P0 = I31(4, 3);
357 P1 = IC(4);
358 P2 = IC(4);
359 P5 = IC(4);
360} else {
361 P0 = I211(4, 1, 3);
362 P1 = I31(1, 4);
363 P2 = I11(1, 5);
364 P5 = I31(4,5);
365}
366} break;
367case 24 :
368{
369P0 = I31(4, 0);
370P1 = I31(4,1);
371P2 = I31(4, 2);
372P3 = IC(4);
373P4 = IC(4);
374P5 = IC(4);
375P6 = I31(4, 6);
376P7 = I31(4, 7);
377P8 = I31(4, 8);
378} break;
379case 25 :
380{
381P0 = I31(4,1);
382P1 = I31(4,1);
383P2 = I31(4, 2);
384P3 = IC(4);
385P4 = IC(4);
386P5 = IC(4);
387P6 = I31(4, 6);
388P7 = I31(4, 7);
389P8 = I31(4, 8);
390} break;
391case 26 :
392case 31 :
393{
394P1 = IC(4);
395P4 = IC(4);
396P6 = I31(4, 6);
397P7 = I31(4, 7);
398P8 = I31(4, 8);
399if (MUL) {
400 P0 = IC(4);
401 P3 = IC(4);
402} else {
403 P0 = I772(1, 3, 4);
404 P3 = I71(4, 3);
405}
406if (MUR) {
407 P2 = IC(4);
408 P5 = IC(4);
409} else {
410 P2 = I772(1, 5, 4);
411 P5 = I71(4, 5);
412}
413} break;
414case 27 :
415{
416P2 = I31(4, 2);
417P4 = IC(4);
418P5 = IC(4);
419P6 = I31(4, 6);
420P7 = I31(4, 7);
421P8 = I31(4, 8);
422if (MUL) {
423 P0 = IC(4);
424 P1 = IC(4);
425 P3 = IC(4);
426} else {
427 P0 = I772(1, 3, 4);
428 P1 = I71(4, 1);
429 P3 = I71(4, 3);
430}
431} break;
432case 28 :
433{
434P0 = I31(4, 0);
435P1 = I31(4,1);
436P2 = I31(4,1);
437P3 = IC(4);
438P4 = IC(4);
439P5 = IC(4);
440P6 = I31(4, 6);
441P7 = I31(4, 7);
442P8 = I31(4, 8);
443} break;
444case 29 :
445{
446P0 = I31(4,1);
447P1 = I31(4,1);
448P2 = I31(4,1);
449P3 = IC(4);
450P4 = IC(4);
451P5 = IC(4);
452P6 = I31(4, 6);
453P7 = I31(4, 7);
454P8 = I31(4, 8);
455} break;
456case 30 :
457{
458P0 = I31(4, 0);
459P3 = IC(4);
460P4 = IC(4);
461P6 = I31(4, 6);
462P7 = I31(4, 7);
463P8 = I31(4, 8);
464if (MUR) {
465 P1 = IC(4);
466 P2 = IC(4);
467 P5 = IC(4);
468} else {
469 P1 = I71(4, 1);
470 P2 = I772(1, 5, 4);
471 P5 = I71(4, 5);
472}
473} break;
474case 40 :
475case 44 :
476case 168 :
477case 172 :
478{
479P0 = I31(4, 0);
480P1 = I31(4,1);
481P2 = I211(4, 1, 5);
482P3 = IC(4);
483P4 = IC(4);
484P5 = I31(4,5);
485P6 = I31(4, 7);
486P7 = I31(4, 7);
487P8 = I211(4, 5, 7);
488} break;
489case 41 :
490case 45 :
491case 169 :
492case 173 :
493{
494P0 = I31(4,1);
495P1 = I31(4,1);
496P2 = I211(4, 1, 5);
497P3 = IC(4);
498P4 = IC(4);
499P5 = I31(4,5);
500P6 = I31(4, 7);
501P7 = I31(4, 7);
502P8 = I211(4, 5, 7);
503} break;
504case 42 :
505case 170 :
506{
507P2 = I31(4, 2);
508P4 = IC(4);
509P5 = I31(4,5);
510P7 = I31(4, 7);
511P8 = I211(4, 5, 7);
512if (MUL) {
513 P0 = I31(4, 0);
514 P1 = IC(4);
515 P3 = IC(4);
516 P6 = I31(4, 7);
517} else {
518 P0 = I11(1, 3);
519 P1 = I31(4,1);
520 P3 = I31(3, 4);
521 P6 = I211(4, 3, 7);
522}
523} break;
524case 43 :
525case 171 :
526{
527P2 = I31(4, 2);
528P4 = IC(4);
529P5 = I31(4,5);
530P7 = I31(4, 7);
531P8 = I211(4, 5, 7);
532if (MUL) {
533 P0 = IC(4);
534 P1 = IC(4);
535 P3 = IC(4);
536 P6 = I31(4, 7);
537} else {
538 P0 = I11(1, 3);
539 P1 = I31(4,1);
540 P3 = I31(3, 4);
541 P6 = I211(4, 3, 7);
542}
543} break;
544case 46 :
545case 174 :
546{
547P1 = IC(4);
548P2 = I31(4,5);
549P3 = IC(4);
550P4 = IC(4);
551P5 = I31(4,5);
552P6 = I31(4, 7);
553P7 = I31(4, 7);
554P8 = I211(4, 5, 7);
555if (MUL) {
556 P0 = I31(4, 0);
557} else {
558 P0 = I211(4, 1, 3);
559}
560} break;
561case 47 :
562case 175 :
563{
564P1 = IC(4);
565P2 = I31(4,5);
566P3 = IC(4);
567P4 = IC(4);
568P5 = I31(4,5);
569P6 = I31(4, 7);
570P7 = I31(4, 7);
571P8 = I211(4, 5, 7);
572if (MUL) {
573 P0 = IC(4);
574} else {
575 P0 = I211(4, 1, 3);
576}
577} break;
578case 56 :
579{
580P0 = I31(4, 0);
581P1 = I31(4,1);
582P2 = I31(4, 2);
583P3 = IC(4);
584P4 = IC(4);
585P5 = IC(4);
586P6 = I31(4, 7);
587P7 = I31(4, 7);
588P8 = I31(4, 8);
589} break;
590case 57 :
591{
592P0 = I31(4,1);
593P1 = I31(4,1);
594P2 = I31(4, 2);
595P3 = IC(4);
596P4 = IC(4);
597P5 = IC(4);
598P6 = I31(4, 7);
599P7 = I31(4, 7);
600P8 = I31(4, 8);
601} break;
602case 58 :
603{
604P1 = IC(4);
605P3 = IC(4);
606P4 = IC(4);
607P5 = IC(4);
608P6 = I31(4, 7);
609P7 = I31(4, 7);
610P8 = I31(4, 8);
611if (MUL) {
612 P0 = I31(4, 0);
613} else {
614 P0 = I211(4, 1, 3);
615}
616if (MUR) {
617 P2 = I31(4, 2);
618} else {
619 P2 = I211(4, 1, 5);
620}
621} break;
622case 59 :
623{
624P4 = IC(4);
625P5 = IC(4);
626P6 = I31(4, 7);
627P7 = I31(4, 7);
628P8 = I31(4, 8);
629if (MUL) {
630 P0 = IC(4);
631 P1 = IC(4);
632 P3 = IC(4);
633} else {
634 P0 = I772(1, 3, 4);
635 P1 = I71(4, 1);
636 P3 = I71(4, 3);
637}
638if (MUR) {
639 P2 = I31(4, 2);
640} else {
641 P2 = I211(4, 1, 5);
642}
643} break;
644case 60 :
645{
646P0 = I31(4, 0);
647P1 = I31(4,1);
648P2 = I31(4,1);
649P3 = IC(4);
650P4 = IC(4);
651P5 = IC(4);
652P6 = I31(4, 7);
653P7 = I31(4, 7);
654P8 = I31(4, 8);
655} break;
656case 61 :
657{
658P0 = I31(4,1);
659P1 = I31(4,1);
660P2 = I31(4,1);
661P3 = IC(4);
662P4 = IC(4);
663P5 = IC(4);
664P6 = I31(4, 7);
665P7 = I31(4, 7);
666P8 = I31(4, 8);
667} break;
668case 62 :
669{
670P0 = I31(4, 0);
671P3 = IC(4);
672P4 = IC(4);
673P6 = I31(4, 7);
674P7 = I31(4, 7);
675P8 = I31(4, 8);
676if (MUR) {
677 P1 = IC(4);
678 P2 = IC(4);
679 P5 = IC(4);
680} else {
681 P1 = I71(4, 1);
682 P2 = I772(1, 5, 4);
683 P5 = I71(4, 5);
684}
685} break;
686case 63 :
687{
688P1 = IC(4);
689P3 = IC(4);
690P4 = IC(4);
691P6 = I31(4, 7);
692P7 = I31(4, 7);
693P8 = I31(4, 8);
694if (MUL) {
695 P0 = IC(4);
696} else {
697 P0 = I211(4, 1, 3);
698}
699if (MUR) {
700 P2 = IC(4);
701 P5 = IC(4);
702} else {
703 P2 = I772(1, 5, 4);
704 P5 = I71(4, 5);
705}
706} break;
707case 64 :
708case 65 :
709case 68 :
710case 69 :
711{
712P0 = I211(4, 1, 3);
713P1 = I31(4,1);
714P2 = I211(4, 1, 5);
715P3 = I31(4, 3);
716P4 = IC(4);
717P5 = I31(4,5);
718P6 = I31(4, 6);
719P7 = IC(4);
720P8 = I31(4, 8);
721} break;
722case 66 :
723{
724P0 = I31(4, 0);
725P1 = IC(4);
726P2 = I31(4, 2);
727P3 = I31(4, 3);
728P4 = IC(4);
729P5 = I31(4,5);
730P6 = I31(4, 6);
731P7 = IC(4);
732P8 = I31(4, 8);
733} break;
734case 67 :
735{
736P0 = I31(4, 3);
737P1 = IC(4);
738P2 = I31(4, 2);
739P3 = I31(4, 3);
740P4 = IC(4);
741P5 = I31(4,5);
742P6 = I31(4, 6);
743P7 = IC(4);
744P8 = I31(4, 8);
745} break;
746case 70 :
747{
748P0 = I31(4, 0);
749P1 = IC(4);
750P2 = I31(4,5);
751P3 = I31(4, 3);
752P4 = IC(4);
753P5 = I31(4,5);
754P6 = I31(4, 6);
755P7 = IC(4);
756P8 = I31(4, 8);
757} break;
758case 71 :
759{
760P0 = I31(4, 3);
761P1 = IC(4);
762P2 = I31(4,5);
763P3 = I31(4, 3);
764P4 = IC(4);
765P5 = I31(4,5);
766P6 = I31(4, 6);
767P7 = IC(4);
768P8 = I31(4, 8);
769} break;
770case 72 :
771case 76 :
772{
773P0 = I31(4, 0);
774P1 = I31(4,1);
775P2 = I211(4, 1, 5);
776P4 = IC(4);
777P5 = I31(4,5);
778P8 = I31(4, 8);
779if (MDL) {
780 P3 = IC(4);
781 P6 = I31(4, 6);
782 P7 = IC(4);
783} else {
784 P3 = I71(4, 3);
785 P6 = I772(3, 7, 4);
786 P7 = I71(4, 7);
787}
788} break;
789case 73 :
790case 77 :
791{
792P1 = I31(4,1);
793P2 = I211(4, 1, 5);
794P4 = IC(4);
795P5 = I31(4,5);
796P8 = I31(4, 8);
797if (MDL) {
798 P0 = I31(4,1);
799 P3 = IC(4);
800 P6 = I31(4, 6);
801 P7 = IC(4);
802} else {
803 P0 = I211(4, 1, 3);
804 P3 = I31(3, 4);
805 P6 = I11(3, 7);
806 P7 = I31(4, 7);
807}
808} break;
809case 74 :
810case 107 :
811{
812P2 = I31(4, 2);
813P3 = IC(4);
814P4 = IC(4);
815P5 = I31(4,5);
816P8 = I31(4, 8);
817if (MDL) {
818 P6 = IC(4);
819 P7 = IC(4);
820} else {
821 P6 = I772(3, 7, 4);
822 P7 = I71(4, 7);
823}
824if (MUL) {
825 P0 = IC(4);
826 P1 = IC(4);
827} else {
828 P0 = I772(1, 3, 4);
829 P1 = I71(4, 1);
830}
831} break;
832case 75 :
833{
834P2 = I31(4, 2);
835P4 = IC(4);
836P5 = I31(4,5);
837P6 = I31(4, 6);
838P7 = IC(4);
839P8 = I31(4, 8);
840if (MUL) {
841 P0 = IC(4);
842 P1 = IC(4);
843 P3 = IC(4);
844} else {
845 P0 = I772(1, 3, 4);
846 P1 = I71(4, 1);
847 P3 = I71(4, 3);
848}
849} break;
850case 78 :
851{
852P1 = IC(4);
853P2 = I31(4,5);
854P3 = IC(4);
855P4 = IC(4);
856P5 = I31(4,5);
857P7 = IC(4);
858P8 = I31(4, 8);
859if (MDL) {
860 P6 = I31(4, 6);
861} else {
862 P6 = I211(4, 3, 7);
863}
864if (MUL) {
865 P0 = I31(4, 0);
866} else {
867 P0 = I211(4, 1, 3);
868}
869} break;
870case 79 :
871{
872P2 = I31(4,5);
873P4 = IC(4);
874P5 = I31(4,5);
875P7 = IC(4);
876P8 = I31(4, 8);
877if (MDL) {
878 P6 = I31(4, 6);
879} else {
880 P6 = I211(4, 3, 7);
881}
882if (MUL) {
883 P0 = IC(4);
884 P1 = IC(4);
885 P3 = IC(4);
886} else {
887 P0 = I772(1, 3, 4);
888 P1 = I71(4, 1);
889 P3 = I71(4, 3);
890}
891} break;
892case 80 :
893case 81 :
894{
895P0 = I211(4, 1, 3);
896P1 = I31(4,1);
897P2 = I31(4, 2);
898P3 = I31(4, 3);
899P4 = IC(4);
900P6 = I31(4, 6);
901if (MDR) {
902 P5 = IC(4);
903 P7 = IC(4);
904 P8 = I31(4, 8);
905} else {
906 P5 = I71(4, 5);
907 P7 = I71(4, 7);
908 P8 = I772(5, 7, 4);
909}
910} break;
911case 82 :
912case 214 :
913{
914P0 = I31(4, 0);
915P3 = I31(4, 3);
916P4 = IC(4);
917P5 = IC(4);
918P6 = I31(4, 6);
919if (MDR) {
920 P7 = IC(4);
921 P8 = IC(4);
922} else {
923 P7 = I71(4, 7);
924 P8 = I772(5, 7, 4);
925}
926if (MUR) {
927 P1 = IC(4);
928 P2 = IC(4);
929} else {
930 P1 = I71(4, 1);
931 P2 = I772(1, 5, 4);
932}
933} break;
934case 83 :
935{
936P0 = I31(4, 3);
937P1 = IC(4);
938P3 = I31(4, 3);
939P4 = IC(4);
940P5 = IC(4);
941P6 = I31(4, 6);
942P7 = IC(4);
943if (MDR) {
944 P8 = I31(4, 8);
945} else {
946 P8 = I211(4, 5, 7);
947}
948if (MUR) {
949 P2 = I31(4, 2);
950} else {
951 P2 = I211(4, 1, 5);
952}
953} break;
954case 84 :
955case 85 :
956{
957P0 = I211(4, 1, 3);
958P1 = I31(4,1);
959P3 = I31(4, 3);
960P4 = IC(4);
961P6 = I31(4, 6);
962if (MDR) {
963 P2 = I31(4,1);
964 P5 = IC(4);
965 P7 = IC(4);
966 P8 = I31(4, 8);
967} else {
968 P2 = I211(4, 1, 5);
969 P5 = I31(5, 4);
970 P7 = I31(4, 7);
971 P8 = I11(5, 7);
972}
973} break;
974case 86 :
975{
976P0 = I31(4, 0);
977P3 = I31(4, 3);
978P4 = IC(4);
979P6 = I31(4, 6);
980P7 = IC(4);
981P8 = I31(4, 8);
982if (MUR) {
983 P1 = IC(4);
984 P2 = IC(4);
985 P5 = IC(4);
986} else {
987 P1 = I71(4, 1);
988 P2 = I772(1, 5, 4);
989 P5 = I71(4, 5);
990}
991} break;
992case 87 :
993{
994P0 = I31(4, 3);
995P3 = I31(4, 3);
996P4 = IC(4);
997P6 = I31(4, 6);
998P7 = IC(4);
999if (MDR) {
1000 P8 = I31(4, 8);
1001} else {
1002 P8 = I211(4, 5, 7);
1003}
1004if (MUR) {
1005 P1 = IC(4);
1006 P2 = IC(4);
1007 P5 = IC(4);
1008} else {
1009 P1 = I71(4, 1);
1010 P2 = I772(1, 5, 4);
1011 P5 = I71(4, 5);
1012}
1013} break;
1014case 88 :
1015case 248 :
1016{
1017P0 = I31(4, 0);
1018P1 = I31(4,1);
1019P2 = I31(4, 2);
1020P4 = IC(4);
1021P7 = IC(4);
1022if (MDL) {
1023 P3 = IC(4);
1024 P6 = IC(4);
1025} else {
1026 P3 = I71(4, 3);
1027 P6 = I772(3, 7, 4);
1028}
1029if (MDR) {
1030 P5 = IC(4);
1031 P8 = IC(4);
1032} else {
1033 P5 = I71(4, 5);
1034 P8 = I772(5, 7, 4);
1035}
1036} break;
1037case 89 :
1038{
1039P0 = I31(4,1);
1040P1 = I31(4,1);
1041P2 = I31(4, 2);
1042P3 = IC(4);
1043P4 = IC(4);
1044P5 = IC(4);
1045P7 = IC(4);
1046if (MDL) {
1047 P6 = I31(4, 6);
1048} else {
1049 P6 = I211(4, 3, 7);
1050}
1051if (MDR) {
1052 P8 = I31(4, 8);
1053} else {
1054 P8 = I211(4, 5, 7);
1055}
1056} break;
1057case 90 :
1058{
1059P1 = IC(4);
1060P3 = IC(4);
1061P4 = IC(4);
1062P5 = IC(4);
1063P7 = IC(4);
1064if (MDL) {
1065 P6 = I31(4, 6);
1066} else {
1067 P6 = I211(4, 3, 7);
1068}
1069if (MDR) {
1070 P8 = I31(4, 8);
1071} else {
1072 P8 = I211(4, 5, 7);
1073}
1074if (MUL) {
1075 P0 = I31(4, 0);
1076} else {
1077 P0 = I211(4, 1, 3);
1078}
1079if (MUR) {
1080 P2 = I31(4, 2);
1081} else {
1082 P2 = I211(4, 1, 5);
1083}
1084} break;
1085case 91 :
1086{
1087P4 = IC(4);
1088P5 = IC(4);
1089P7 = IC(4);
1090if (MDL) {
1091 P6 = I31(4, 6);
1092} else {
1093 P6 = I211(4, 3, 7);
1094}
1095if (MDR) {
1096 P8 = I31(4, 8);
1097} else {
1098 P8 = I211(4, 5, 7);
1099}
1100if (MUL) {
1101 P0 = IC(4);
1102 P1 = IC(4);
1103 P3 = IC(4);
1104} else {
1105 P0 = I772(1, 3, 4);
1106 P1 = I71(4, 1);
1107 P3 = I71(4, 3);
1108}
1109if (MUR) {
1110 P2 = I31(4, 2);
1111} else {
1112 P2 = I211(4, 1, 5);
1113}
1114} break;
1115case 92 :
1116{
1117P0 = I31(4, 0);
1118P1 = I31(4,1);
1119P2 = I31(4,1);
1120P3 = IC(4);
1121P4 = IC(4);
1122P5 = IC(4);
1123P7 = IC(4);
1124if (MDL) {
1125 P6 = I31(4, 6);
1126} else {
1127 P6 = I211(4, 3, 7);
1128}
1129if (MDR) {
1130 P8 = I31(4, 8);
1131} else {
1132 P8 = I211(4, 5, 7);
1133}
1134} break;
1135case 93 :
1136{
1137P0 = I31(4,1);
1138P1 = I31(4,1);
1139P2 = I31(4,1);
1140P3 = IC(4);
1141P4 = IC(4);
1142P5 = IC(4);
1143P7 = IC(4);
1144if (MDL) {
1145 P6 = I31(4, 6);
1146} else {
1147 P6 = I211(4, 3, 7);
1148}
1149if (MDR) {
1150 P8 = I31(4, 8);
1151} else {
1152 P8 = I211(4, 5, 7);
1153}
1154} break;
1155case 94 :
1156{
1157P3 = IC(4);
1158P4 = IC(4);
1159P7 = IC(4);
1160if (MDL) {
1161 P6 = I31(4, 6);
1162} else {
1163 P6 = I211(4, 3, 7);
1164}
1165if (MDR) {
1166 P8 = I31(4, 8);
1167} else {
1168 P8 = I211(4, 5, 7);
1169}
1170if (MUL) {
1171 P0 = I31(4, 0);
1172} else {
1173 P0 = I211(4, 1, 3);
1174}
1175if (MUR) {
1176 P1 = IC(4);
1177 P2 = IC(4);
1178 P5 = IC(4);
1179} else {
1180 P1 = I71(4, 1);
1181 P2 = I772(1, 5, 4);
1182 P5 = I71(4, 5);
1183}
1184} break;
1185case 95 :
1186{
1187P1 = IC(4);
1188P4 = IC(4);
1189P6 = I31(4, 6);
1190P7 = IC(4);
1191P8 = I31(4, 8);
1192if (MUL) {
1193 P0 = IC(4);
1194 P3 = IC(4);
1195} else {
1196 P0 = I772(1, 3, 4);
1197 P3 = I71(4, 3);
1198}
1199if (MUR) {
1200 P2 = IC(4);
1201 P5 = IC(4);
1202} else {
1203 P2 = I772(1, 5, 4);
1204 P5 = I71(4, 5);
1205}
1206} break;
1207case 96 :
1208case 97 :
1209case 100 :
1210case 101 :
1211{
1212P0 = I211(4, 1, 3);
1213P1 = I31(4,1);
1214P2 = I211(4, 1, 5);
1215P3 = I31(4, 3);
1216P4 = IC(4);
1217P5 = I31(4,5);
1218P6 = I31(4, 3);
1219P7 = IC(4);
1220P8 = I31(4, 8);
1221} break;
1222case 98 :
1223{
1224P0 = I31(4, 0);
1225P1 = IC(4);
1226P2 = I31(4, 2);
1227P3 = I31(4, 3);
1228P4 = IC(4);
1229P5 = I31(4,5);
1230P6 = I31(4, 3);
1231P7 = IC(4);
1232P8 = I31(4, 8);
1233} break;
1234case 99 :
1235{
1236P0 = I31(4, 3);
1237P1 = IC(4);
1238P2 = I31(4, 2);
1239P3 = I31(4, 3);
1240P4 = IC(4);
1241P5 = I31(4,5);
1242P6 = I31(4, 3);
1243P7 = IC(4);
1244P8 = I31(4, 8);
1245} break;
1246case 102 :
1247{
1248P0 = I31(4, 0);
1249P1 = IC(4);
1250P2 = I31(4,5);
1251P3 = I31(4, 3);
1252P4 = IC(4);
1253P5 = I31(4,5);
1254P6 = I31(4, 3);
1255P7 = IC(4);
1256P8 = I31(4, 8);
1257} break;
1258case 103 :
1259{
1260P0 = I31(4, 3);
1261P1 = IC(4);
1262P2 = I31(4,5);
1263P3 = I31(4, 3);
1264P4 = IC(4);
1265P5 = I31(4,5);
1266P6 = I31(4, 3);
1267P7 = IC(4);
1268P8 = I31(4, 8);
1269} break;
1270case 104 :
1271case 108 :
1272{
1273P0 = I31(4, 0);
1274P1 = I31(4,1);
1275P2 = I211(4, 1, 5);
1276P4 = IC(4);
1277P5 = I31(4,5);
1278P8 = I31(4, 8);
1279if (MDL) {
1280 P3 = IC(4);
1281 P6 = IC(4);
1282 P7 = IC(4);
1283} else {
1284 P3 = I71(4, 3);
1285 P6 = I772(3, 7, 4);
1286 P7 = I71(4, 7);
1287}
1288} break;
1289case 105 :
1290case 109 :
1291{
1292P1 = I31(4,1);
1293P2 = I211(4, 1, 5);
1294P4 = IC(4);
1295P5 = I31(4,5);
1296P8 = I31(4, 8);
1297if (MDL) {
1298 P0 = I31(4,1);
1299 P3 = IC(4);
1300 P6 = IC(4);
1301 P7 = IC(4);
1302} else {
1303 P0 = I211(4, 1, 3);
1304 P3 = I31(3, 4);
1305 P6 = I11(3, 7);
1306 P7 = I31(4, 7);
1307}
1308} break;
1309case 106 :
1310{
1311P0 = I31(4, 0);
1312P1 = IC(4);
1313P2 = I31(4, 2);
1314P4 = IC(4);
1315P5 = I31(4,5);
1316P8 = I31(4, 8);
1317if (MDL) {
1318 P3 = IC(4);
1319 P6 = IC(4);
1320 P7 = IC(4);
1321} else {
1322 P3 = I71(4, 3);
1323 P6 = I772(3, 7, 4);
1324 P7 = I71(4, 7);
1325}
1326} break;
1327case 110 :
1328{
1329P0 = I31(4, 0);
1330P1 = IC(4);
1331P2 = I31(4,5);
1332P4 = IC(4);
1333P5 = I31(4,5);
1334P8 = I31(4, 8);
1335if (MDL) {
1336 P3 = IC(4);
1337 P6 = IC(4);
1338 P7 = IC(4);
1339} else {
1340 P3 = I71(4, 3);
1341 P6 = I772(3, 7, 4);
1342 P7 = I71(4, 7);
1343}
1344} break;
1345case 111 :
1346{
1347P1 = IC(4);
1348P2 = I31(4,5);
1349P3 = IC(4);
1350P4 = IC(4);
1351P5 = I31(4,5);
1352P8 = I31(4, 8);
1353if (MDL) {
1354 P6 = IC(4);
1355 P7 = IC(4);
1356} else {
1357 P6 = I772(3, 7, 4);
1358 P7 = I71(4, 7);
1359}
1360if (MUL) {
1361 P0 = IC(4);
1362} else {
1363 P0 = I211(4, 1, 3);
1364}
1365} break;
1366case 112 :
1367case 113 :
1368{
1369P0 = I211(4, 1, 3);
1370P1 = I31(4,1);
1371P2 = I31(4, 2);
1372P3 = I31(4, 3);
1373P4 = IC(4);
1374if (MDR) {
1375 P5 = IC(4);
1376 P6 = I31(4, 3);
1377 P7 = IC(4);
1378 P8 = I31(4, 8);
1379} else {
1380 P5 = I31(4,5);
1381 P6 = I211(4, 3, 7);
1382 P7 = I31(7, 4);
1383 P8 = I11(5, 7);
1384}
1385} break;
1386case 114 :
1387{
1388P0 = I31(4, 0);
1389P1 = IC(4);
1390P3 = I31(4, 3);
1391P4 = IC(4);
1392P5 = IC(4);
1393P6 = I31(4, 3);
1394P7 = IC(4);
1395if (MDR) {
1396 P8 = I31(4, 8);
1397} else {
1398 P8 = I211(4, 5, 7);
1399}
1400if (MUR) {
1401 P2 = I31(4, 2);
1402} else {
1403 P2 = I211(4, 1, 5);
1404}
1405} break;
1406case 115 :
1407{
1408P0 = I31(4, 3);
1409P1 = IC(4);
1410P3 = I31(4, 3);
1411P4 = IC(4);
1412P5 = IC(4);
1413P6 = I31(4, 3);
1414P7 = IC(4);
1415if (MDR) {
1416 P8 = I31(4, 8);
1417} else {
1418 P8 = I211(4, 5, 7);
1419}
1420if (MUR) {
1421 P2 = I31(4, 2);
1422} else {
1423 P2 = I211(4, 1, 5);
1424}
1425} break;
1426case 116 :
1427case 117 :
1428{
1429P0 = I211(4, 1, 3);
1430P1 = I31(4,1);
1431P2 = I31(4,1);
1432P3 = I31(4, 3);
1433P4 = IC(4);
1434P5 = IC(4);
1435P6 = I31(4, 3);
1436P7 = IC(4);
1437if (MDR) {
1438 P8 = I31(4, 8);
1439} else {
1440 P8 = I211(4, 5, 7);
1441}
1442} break;
1443case 118 :
1444{
1445P0 = I31(4, 0);
1446P3 = I31(4, 3);
1447P4 = IC(4);
1448P6 = I31(4, 3);
1449P7 = IC(4);
1450P8 = I31(4, 8);
1451if (MUR) {
1452 P1 = IC(4);
1453 P2 = IC(4);
1454 P5 = IC(4);
1455} else {
1456 P1 = I71(4, 1);
1457 P2 = I772(1, 5, 4);
1458 P5 = I71(4, 5);
1459}
1460} break;
1461case 119 :
1462{
1463P3 = I31(4, 3);
1464P4 = IC(4);
1465P6 = I31(4, 3);
1466P7 = IC(4);
1467P8 = I31(4, 8);
1468if (MUR) {
1469 P0 = I31(4, 3);
1470 P1 = IC(4);
1471 P2 = IC(4);
1472 P5 = IC(4);
1473} else {
1474 P0 = I211(4, 1, 3);
1475 P1 = I31(1, 4);
1476 P2 = I11(1, 5);
1477 P5 = I31(4,5);
1478}
1479} break;
1480case 120 :
1481{
1482P0 = I31(4, 0);
1483P1 = I31(4,1);
1484P2 = I31(4, 2);
1485P4 = IC(4);
1486P5 = IC(4);
1487P8 = I31(4, 8);
1488if (MDL) {
1489 P3 = IC(4);
1490 P6 = IC(4);
1491 P7 = IC(4);
1492} else {
1493 P3 = I71(4, 3);
1494 P6 = I772(3, 7, 4);
1495 P7 = I71(4, 7);
1496}
1497} break;
1498case 121 :
1499{
1500P0 = I31(4,1);
1501P1 = I31(4,1);
1502P2 = I31(4, 2);
1503P4 = IC(4);
1504P5 = IC(4);
1505if (MDL) {
1506 P3 = IC(4);
1507 P6 = IC(4);
1508 P7 = IC(4);
1509} else {
1510 P3 = I71(4, 3);
1511 P6 = I772(3, 7, 4);
1512 P7 = I71(4, 7);
1513}
1514if (MDR) {
1515 P8 = I31(4, 8);
1516} else {
1517 P8 = I211(4, 5, 7);
1518}
1519} break;
1520case 122 :
1521{
1522P1 = IC(4);
1523P4 = IC(4);
1524P5 = IC(4);
1525if (MDL) {
1526 P3 = IC(4);
1527 P6 = IC(4);
1528 P7 = IC(4);
1529} else {
1530 P3 = I71(4, 3);
1531 P6 = I772(3, 7, 4);
1532 P7 = I71(4, 7);
1533}
1534if (MDR) {
1535 P8 = I31(4, 8);
1536} else {
1537 P8 = I211(4, 5, 7);
1538}
1539if (MUL) {
1540 P0 = I31(4, 0);
1541} else {
1542 P0 = I211(4, 1, 3);
1543}
1544if (MUR) {
1545 P2 = I31(4, 2);
1546} else {
1547 P2 = I211(4, 1, 5);
1548}
1549} break;
1550case 123 :
1551{
1552P2 = I31(4, 2);
1553P3 = IC(4);
1554P4 = IC(4);
1555P5 = IC(4);
1556P8 = I31(4, 8);
1557if (MDL) {
1558 P6 = IC(4);
1559 P7 = IC(4);
1560} else {
1561 P6 = I772(3, 7, 4);
1562 P7 = I71(4, 7);
1563}
1564if (MUL) {
1565 P0 = IC(4);
1566 P1 = IC(4);
1567} else {
1568 P0 = I772(1, 3, 4);
1569 P1 = I71(4, 1);
1570}
1571} break;
1572case 124 :
1573{
1574P0 = I31(4, 0);
1575P1 = I31(4,1);
1576P2 = I31(4,1);
1577P4 = IC(4);
1578P5 = IC(4);
1579P8 = I31(4, 8);
1580if (MDL) {
1581 P3 = IC(4);
1582 P6 = IC(4);
1583 P7 = IC(4);
1584} else {
1585 P3 = I71(4, 3);
1586 P6 = I772(3, 7, 4);
1587 P7 = I71(4, 7);
1588}
1589} break;
1590case 125 :
1591{
1592P1 = I31(4,1);
1593P2 = I31(4,1);
1594P4 = IC(4);
1595P5 = IC(4);
1596P8 = I31(4, 8);
1597if (MDL) {
1598 P0 = I31(4,1);
1599 P3 = IC(4);
1600 P6 = IC(4);
1601 P7 = IC(4);
1602} else {
1603 P0 = I211(4, 1, 3);
1604 P3 = I31(3, 4);
1605 P6 = I11(3, 7);
1606 P7 = I31(4, 7);
1607}
1608} break;
1609case 126 :
1610{
1611P0 = I31(4, 0);
1612P4 = IC(4);
1613P8 = I31(4, 8);
1614if (MDL) {
1615 P3 = IC(4);
1616 P6 = IC(4);
1617 P7 = IC(4);
1618} else {
1619 P3 = I71(4, 3);
1620 P6 = I772(3, 7, 4);
1621 P7 = I71(4, 7);
1622}
1623if (MUR) {
1624 P1 = IC(4);
1625 P2 = IC(4);
1626 P5 = IC(4);
1627} else {
1628 P1 = I71(4, 1);
1629 P2 = I772(1, 5, 4);
1630 P5 = I71(4, 5);
1631}
1632} break;
1633case 127 :
1634{
1635P4 = IC(4);
1636P8 = I31(4, 8);
1637if (MDL) {
1638 P6 = IC(4);
1639 P7 = IC(4);
1640} else {
1641 P6 = I772(3, 7, 4);
1642 P7 = I71(4, 7);
1643}
1644if (MUL) {
1645 P0 = IC(4);
1646 P1 = IC(4);
1647 P3 = IC(4);
1648} else {
1649 P0 = I211(4, 1, 3);
1650 P1 = I71(4, 1);
1651 P3 = I71(4, 3);
1652}
1653if (MUR) {
1654 P2 = IC(4);
1655 P5 = IC(4);
1656} else {
1657 P2 = I772(1, 5, 4);
1658 P5 = I71(4, 5);
1659}
1660} break;
1661case 144 :
1662case 145 :
1663case 176 :
1664case 177 :
1665{
1666P0 = I211(4, 1, 3);
1667P1 = I31(4,1);
1668P2 = I31(4, 2);
1669P3 = I31(4, 3);
1670P4 = IC(4);
1671P5 = IC(4);
1672P6 = I211(4, 3, 7);
1673P7 = I31(4, 7);
1674P8 = I31(4, 7);
1675} break;
1676case 146 :
1677case 178 :
1678{
1679P0 = I31(4, 0);
1680P3 = I31(4, 3);
1681P4 = IC(4);
1682P6 = I211(4, 3, 7);
1683P7 = I31(4, 7);
1684if (MUR) {
1685 P1 = IC(4);
1686 P2 = I31(4, 2);
1687 P5 = IC(4);
1688 P8 = I31(4, 7);
1689} else {
1690 P1 = I31(4,1);
1691 P2 = I11(1, 5);
1692 P5 = I31(5, 4);
1693 P8 = I211(4, 5, 7);
1694}
1695} break;
1696case 147 :
1697case 179 :
1698{
1699P0 = I31(4, 3);
1700P1 = IC(4);
1701P3 = I31(4, 3);
1702P4 = IC(4);
1703P5 = IC(4);
1704P6 = I211(4, 3, 7);
1705P7 = I31(4, 7);
1706P8 = I31(4, 7);
1707if (MUR) {
1708 P2 = I31(4, 2);
1709} else {
1710 P2 = I211(4, 1, 5);
1711}
1712} break;
1713case 148 :
1714case 149 :
1715case 180 :
1716case 181 :
1717{
1718P0 = I211(4, 1, 3);
1719P1 = I31(4,1);
1720P2 = I31(4,1);
1721P3 = I31(4, 3);
1722P4 = IC(4);
1723P5 = IC(4);
1724P6 = I211(4, 3, 7);
1725P7 = I31(4, 7);
1726P8 = I31(4, 7);
1727} break;
1728case 150 :
1729case 182 :
1730{
1731P0 = I31(4, 0);
1732P3 = I31(4, 3);
1733P4 = IC(4);
1734P6 = I211(4, 3, 7);
1735P7 = I31(4, 7);
1736if (MUR) {
1737 P1 = IC(4);
1738 P2 = IC(4);
1739 P5 = IC(4);
1740 P8 = I31(4, 7);
1741} else {
1742 P1 = I31(4,1);
1743 P2 = I11(1, 5);
1744 P5 = I31(5, 4);
1745 P8 = I211(4, 5, 7);
1746}
1747} break;
1748case 151 :
1749case 183 :
1750{
1751P0 = I31(4, 3);
1752P1 = IC(4);
1753P3 = I31(4, 3);
1754P4 = IC(4);
1755P5 = IC(4);
1756P6 = I211(4, 3, 7);
1757P7 = I31(4, 7);
1758P8 = I31(4, 7);
1759if (MUR) {
1760 P2 = IC(4);
1761} else {
1762 P2 = I211(4, 1, 5);
1763}
1764} break;
1765case 152 :
1766{
1767P0 = I31(4, 0);
1768P1 = I31(4,1);
1769P2 = I31(4, 2);
1770P3 = IC(4);
1771P4 = IC(4);
1772P5 = IC(4);
1773P6 = I31(4, 6);
1774P7 = I31(4, 7);
1775P8 = I31(4, 7);
1776} break;
1777case 153 :
1778{
1779P0 = I31(4,1);
1780P1 = I31(4,1);
1781P2 = I31(4, 2);
1782P3 = IC(4);
1783P4 = IC(4);
1784P5 = IC(4);
1785P6 = I31(4, 6);
1786P7 = I31(4, 7);
1787P8 = I31(4, 7);
1788} break;
1789case 154 :
1790{
1791P1 = IC(4);
1792P3 = IC(4);
1793P4 = IC(4);
1794P5 = IC(4);
1795P6 = I31(4, 6);
1796P7 = I31(4, 7);
1797P8 = I31(4, 7);
1798if (MUL) {
1799 P0 = I31(4, 0);
1800} else {
1801 P0 = I211(4, 1, 3);
1802}
1803if (MUR) {
1804 P2 = I31(4, 2);
1805} else {
1806 P2 = I211(4, 1, 5);
1807}
1808} break;
1809case 155 :
1810{
1811P2 = I31(4, 2);
1812P4 = IC(4);
1813P5 = IC(4);
1814P6 = I31(4, 6);
1815P7 = I31(4, 7);
1816P8 = I31(4, 7);
1817if (MUL) {
1818 P0 = IC(4);
1819 P1 = IC(4);
1820 P3 = IC(4);
1821} else {
1822 P0 = I772(1, 3, 4);
1823 P1 = I71(4, 1);
1824 P3 = I71(4, 3);
1825}
1826} break;
1827case 156 :
1828{
1829P0 = I31(4, 0);
1830P1 = I31(4,1);
1831P2 = I31(4,1);
1832P3 = IC(4);
1833P4 = IC(4);
1834P5 = IC(4);
1835P6 = I31(4, 6);
1836P7 = I31(4, 7);
1837P8 = I31(4, 7);
1838} break;
1839case 157 :
1840{
1841P0 = I31(4,1);
1842P1 = I31(4,1);
1843P2 = I31(4,1);
1844P3 = IC(4);
1845P4 = IC(4);
1846P5 = IC(4);
1847P6 = I31(4, 6);
1848P7 = I31(4, 7);
1849P8 = I31(4, 7);
1850} break;
1851case 158 :
1852{
1853P3 = IC(4);
1854P4 = IC(4);
1855P6 = I31(4, 6);
1856P7 = I31(4, 7);
1857P8 = I31(4, 7);
1858if (MUL) {
1859 P0 = I31(4, 0);
1860} else {
1861 P0 = I211(4, 1, 3);
1862}
1863if (MUR) {
1864 P1 = IC(4);
1865 P2 = IC(4);
1866 P5 = IC(4);
1867} else {
1868 P1 = I71(4, 1);
1869 P2 = I772(1, 5, 4);
1870 P5 = I71(4, 5);
1871}
1872} break;
1873case 159 :
1874{
1875P1 = IC(4);
1876P4 = IC(4);
1877P5 = IC(4);
1878P6 = I31(4, 6);
1879P7 = I31(4, 7);
1880P8 = I31(4, 7);
1881if (MUL) {
1882 P0 = IC(4);
1883 P3 = IC(4);
1884} else {
1885 P0 = I772(1, 3, 4);
1886 P3 = I71(4, 3);
1887}
1888if (MUR) {
1889 P2 = IC(4);
1890} else {
1891 P2 = I211(4, 1, 5);
1892}
1893} break;
1894case 184 :
1895{
1896P0 = I31(4, 0);
1897P1 = I31(4,1);
1898P2 = I31(4, 2);
1899P3 = IC(4);
1900P4 = IC(4);
1901P5 = IC(4);
1902P6 = I31(4, 7);
1903P7 = I31(4, 7);
1904P8 = I31(4, 7);
1905} break;
1906case 185 :
1907{
1908P0 = I31(4,1);
1909P1 = I31(4,1);
1910P2 = I31(4, 2);
1911P3 = IC(4);
1912P4 = IC(4);
1913P5 = IC(4);
1914P6 = I31(4, 7);
1915P7 = I31(4, 7);
1916P8 = I31(4, 7);
1917} break;
1918case 186 :
1919{
1920P1 = IC(4);
1921P3 = IC(4);
1922P4 = IC(4);
1923P5 = IC(4);
1924P6 = I31(4, 7);
1925P7 = I31(4, 7);
1926P8 = I31(4, 7);
1927if (MUL) {
1928 P0 = I31(4, 0);
1929} else {
1930 P0 = I211(4, 1, 3);
1931}
1932if (MUR) {
1933 P2 = I31(4, 2);
1934} else {
1935 P2 = I211(4, 1, 5);
1936}
1937} break;
1938case 187 :
1939{
1940P2 = I31(4, 2);
1941P4 = IC(4);
1942P5 = IC(4);
1943P7 = I31(4, 7);
1944P8 = I31(4, 7);
1945if (MUL) {
1946 P0 = IC(4);
1947 P1 = IC(4);
1948 P3 = IC(4);
1949 P6 = I31(4, 7);
1950} else {
1951 P0 = I11(1, 3);
1952 P1 = I31(4,1);
1953 P3 = I31(3, 4);
1954 P6 = I211(4, 3, 7);
1955}
1956} break;
1957case 188 :
1958{
1959P0 = I31(4, 0);
1960P1 = I31(4,1);
1961P2 = I31(4,1);
1962P3 = IC(4);
1963P4 = IC(4);
1964P5 = IC(4);
1965P6 = I31(4, 7);
1966P7 = I31(4, 7);
1967P8 = I31(4, 7);
1968} break;
1969case 189 :
1970{
1971P0 = I31(4,1);
1972P1 = I31(4,1);
1973P2 = I31(4,1);
1974P3 = IC(4);
1975P4 = IC(4);
1976P5 = IC(4);
1977P6 = I31(4, 7);
1978P7 = I31(4, 7);
1979P8 = I31(4, 7);
1980} break;
1981case 190 :
1982{
1983P0 = I31(4, 0);
1984P3 = IC(4);
1985P4 = IC(4);
1986P6 = I31(4, 7);
1987P7 = I31(4, 7);
1988if (MUR) {
1989 P1 = IC(4);
1990 P2 = IC(4);
1991 P5 = IC(4);
1992 P8 = I31(4, 7);
1993} else {
1994 P1 = I31(4,1);
1995 P2 = I11(1, 5);
1996 P5 = I31(5, 4);
1997 P8 = I211(4, 5, 7);
1998}
1999} break;
2000case 191 :
2001{
2002P1 = IC(4);
2003P3 = IC(4);
2004P4 = IC(4);
2005P5 = IC(4);
2006P6 = I31(4, 7);
2007P7 = I31(4, 7);
2008P8 = I31(4, 7);
2009if (MUL) {
2010 P0 = IC(4);
2011} else {
2012 P0 = I211(4, 1, 3);
2013}
2014if (MUR) {
2015 P2 = IC(4);
2016} else {
2017 P2 = I211(4, 1, 5);
2018}
2019} break;
2020case 192 :
2021case 193 :
2022case 196 :
2023case 197 :
2024{
2025P0 = I211(4, 1, 3);
2026P1 = I31(4,1);
2027P2 = I211(4, 1, 5);
2028P3 = I31(4, 3);
2029P4 = IC(4);
2030P5 = I31(4,5);
2031P6 = I31(4, 6);
2032P7 = IC(4);
2033P8 = I31(4,5);
2034} break;
2035case 194 :
2036{
2037P0 = I31(4, 0);
2038P1 = IC(4);
2039P2 = I31(4, 2);
2040P3 = I31(4, 3);
2041P4 = IC(4);
2042P5 = I31(4,5);
2043P6 = I31(4, 6);
2044P7 = IC(4);
2045P8 = I31(4,5);
2046} break;
2047case 195 :
2048{
2049P0 = I31(4, 3);
2050P1 = IC(4);
2051P2 = I31(4, 2);
2052P3 = I31(4, 3);
2053P4 = IC(4);
2054P5 = I31(4,5);
2055P6 = I31(4, 6);
2056P7 = IC(4);
2057P8 = I31(4,5);
2058} break;
2059case 198 :
2060{
2061P0 = I31(4, 0);
2062P1 = IC(4);
2063P2 = I31(4,5);
2064P3 = I31(4, 3);
2065P4 = IC(4);
2066P5 = I31(4,5);
2067P6 = I31(4, 6);
2068P7 = IC(4);
2069P8 = I31(4,5);
2070} break;
2071case 199 :
2072{
2073P0 = I31(4, 3);
2074P1 = IC(4);
2075P2 = I31(4,5);
2076P3 = I31(4, 3);
2077P4 = IC(4);
2078P5 = I31(4,5);
2079P6 = I31(4, 6);
2080P7 = IC(4);
2081P8 = I31(4,5);
2082} break;
2083case 200 :
2084case 204 :
2085{
2086P0 = I31(4, 0);
2087P1 = I31(4,1);
2088P2 = I211(4, 1, 5);
2089P4 = IC(4);
2090P5 = I31(4,5);
2091if (MDL) {
2092 P3 = IC(4);
2093 P6 = I31(4, 6);
2094 P7 = IC(4);
2095 P8 = I31(4,5);
2096} else {
2097 P3 = I31(4, 3);
2098 P6 = I11(3, 7);
2099 P7 = I31(7, 4);
2100 P8 = I211(4, 5, 7);
2101}
2102} break;
2103case 201 :
2104case 205 :
2105{
2106P0 = I31(4,1);
2107P1 = I31(4,1);
2108P2 = I211(4, 1, 5);
2109P3 = IC(4);
2110P4 = IC(4);
2111P5 = I31(4,5);
2112P7 = IC(4);
2113P8 = I31(4,5);
2114if (MDL) {
2115 P6 = I31(4, 6);
2116} else {
2117 P6 = I211(4, 3, 7);
2118}
2119} break;
2120case 202 :
2121{
2122P1 = IC(4);
2123P2 = I31(4, 2);
2124P3 = IC(4);
2125P4 = IC(4);
2126P5 = I31(4,5);
2127P7 = IC(4);
2128P8 = I31(4,5);
2129if (MDL) {
2130 P6 = I31(4, 6);
2131} else {
2132 P6 = I211(4, 3, 7);
2133}
2134if (MUL) {
2135 P0 = I31(4, 0);
2136} else {
2137 P0 = I211(4, 1, 3);
2138}
2139} break;
2140case 203 :
2141{
2142P2 = I31(4, 2);
2143P4 = IC(4);
2144P5 = I31(4,5);
2145P6 = I31(4, 6);
2146P7 = IC(4);
2147P8 = I31(4,5);
2148if (MUL) {
2149 P0 = IC(4);
2150 P1 = IC(4);
2151 P3 = IC(4);
2152} else {
2153 P0 = I772(1, 3, 4);
2154 P1 = I71(4, 1);
2155 P3 = I71(4, 3);
2156}
2157} break;
2158case 206 :
2159{
2160P1 = IC(4);
2161P2 = I31(4,5);
2162P3 = IC(4);
2163P4 = IC(4);
2164P5 = I31(4,5);
2165P7 = IC(4);
2166P8 = I31(4,5);
2167if (MDL) {
2168 P6 = I31(4, 6);
2169} else {
2170 P6 = I211(4, 3, 7);
2171}
2172if (MUL) {
2173 P0 = I31(4, 0);
2174} else {
2175 P0 = I211(4, 1, 3);
2176}
2177} break;
2178case 207 :
2179{
2180P4 = IC(4);
2181P5 = I31(4,5);
2182P6 = I31(4, 6);
2183P7 = IC(4);
2184P8 = I31(4,5);
2185if (MUL) {
2186 P0 = IC(4);
2187 P1 = IC(4);
2188 P2 = I31(4,5);
2189 P3 = IC(4);
2190} else {
2191 P0 = I11(1, 3);
2192 P1 = I31(1, 4);
2193 P2 = I211(4, 1, 5);
2194 P3 = I31(4, 3);
2195}
2196} break;
2197case 208 :
2198case 209 :
2199{
2200P0 = I211(4, 1, 3);
2201P1 = I31(4,1);
2202P2 = I31(4, 2);
2203P3 = I31(4, 3);
2204P4 = IC(4);
2205P6 = I31(4, 6);
2206if (MDR) {
2207 P5 = IC(4);
2208 P7 = IC(4);
2209 P8 = IC(4);
2210} else {
2211 P5 = I71(4, 5);
2212 P7 = I71(4, 7);
2213 P8 = I772(5, 7, 4);
2214}
2215} break;
2216case 210 :
2217{
2218P0 = I31(4, 0);
2219P1 = IC(4);
2220P2 = I31(4, 2);
2221P3 = I31(4, 3);
2222P4 = IC(4);
2223P6 = I31(4, 6);
2224if (MDR) {
2225 P5 = IC(4);
2226 P7 = IC(4);
2227 P8 = IC(4);
2228} else {
2229 P5 = I71(4, 5);
2230 P7 = I71(4, 7);
2231 P8 = I772(5, 7, 4);
2232}
2233} break;
2234case 211 :
2235{
2236P0 = I31(4, 3);
2237P1 = IC(4);
2238P2 = I31(4, 2);
2239P3 = I31(4, 3);
2240P4 = IC(4);
2241P6 = I31(4, 6);
2242if (MDR) {
2243 P5 = IC(4);
2244 P7 = IC(4);
2245 P8 = IC(4);
2246} else {
2247 P5 = I71(4, 5);
2248 P7 = I71(4, 7);
2249 P8 = I772(5, 7, 4);
2250}
2251} break;
2252case 212 :
2253case 213 :
2254{
2255P0 = I211(4, 1, 3);
2256P1 = I31(4,1);
2257P3 = I31(4, 3);
2258P4 = IC(4);
2259P6 = I31(4, 6);
2260if (MDR) {
2261 P2 = I31(4,1);
2262 P5 = IC(4);
2263 P7 = IC(4);
2264 P8 = IC(4);
2265} else {
2266 P2 = I211(4, 1, 5);
2267 P5 = I31(5, 4);
2268 P7 = I31(4, 7);
2269 P8 = I11(5, 7);
2270}
2271} break;
2272case 215 :
2273{
2274P0 = I31(4, 3);
2275P1 = IC(4);
2276P3 = I31(4, 3);
2277P4 = IC(4);
2278P5 = IC(4);
2279P6 = I31(4, 6);
2280if (MDR) {
2281 P7 = IC(4);
2282 P8 = IC(4);
2283} else {
2284 P7 = I71(4, 7);
2285 P8 = I772(5, 7, 4);
2286}
2287if (MUR) {
2288 P2 = IC(4);
2289} else {
2290 P2 = I211(4, 1, 5);
2291}
2292} break;
2293case 216 :
2294{
2295P0 = I31(4, 0);
2296P1 = I31(4,1);
2297P2 = I31(4, 2);
2298P3 = IC(4);
2299P4 = IC(4);
2300P6 = I31(4, 6);
2301if (MDR) {
2302 P5 = IC(4);
2303 P7 = IC(4);
2304 P8 = IC(4);
2305} else {
2306 P5 = I71(4, 5);
2307 P7 = I71(4, 7);
2308 P8 = I772(5, 7, 4);
2309}
2310} break;
2311case 217 :
2312{
2313P0 = I31(4,1);
2314P1 = I31(4,1);
2315P2 = I31(4, 2);
2316P3 = IC(4);
2317P4 = IC(4);
2318P6 = I31(4, 6);
2319if (MDR) {
2320 P5 = IC(4);
2321 P7 = IC(4);
2322 P8 = IC(4);
2323} else {
2324 P5 = I71(4, 5);
2325 P7 = I71(4, 7);
2326 P8 = I772(5, 7, 4);
2327}
2328} break;
2329case 218 :
2330{
2331P1 = IC(4);
2332P3 = IC(4);
2333P4 = IC(4);
2334if (MDL) {
2335 P6 = I31(4, 6);
2336} else {
2337 P6 = I211(4, 3, 7);
2338}
2339if (MDR) {
2340 P5 = IC(4);
2341 P7 = IC(4);
2342 P8 = IC(4);
2343} else {
2344 P5 = I71(4, 5);
2345 P7 = I71(4, 7);
2346 P8 = I772(5, 7, 4);
2347}
2348if (MUL) {
2349 P0 = I31(4, 0);
2350} else {
2351 P0 = I211(4, 1, 3);
2352}
2353if (MUR) {
2354 P2 = I31(4, 2);
2355} else {
2356 P2 = I211(4, 1, 5);
2357}
2358} break;
2359case 219 :
2360{
2361P2 = I31(4, 2);
2362P4 = IC(4);
2363P6 = I31(4, 6);
2364if (MDR) {
2365 P5 = IC(4);
2366 P7 = IC(4);
2367 P8 = IC(4);
2368} else {
2369 P5 = I71(4, 5);
2370 P7 = I71(4, 7);
2371 P8 = I772(5, 7, 4);
2372}
2373if (MUL) {
2374 P0 = IC(4);
2375 P1 = IC(4);
2376 P3 = IC(4);
2377} else {
2378 P0 = I772(1, 3, 4);
2379 P1 = I71(4, 1);
2380 P3 = I71(4, 3);
2381}
2382} break;
2383case 220 :
2384{
2385P0 = I31(4, 0);
2386P1 = I31(4,1);
2387P2 = I31(4,1);
2388P3 = IC(4);
2389P4 = IC(4);
2390if (MDL) {
2391 P6 = I31(4, 6);
2392} else {
2393 P6 = I211(4, 3, 7);
2394}
2395if (MDR) {
2396 P5 = IC(4);
2397 P7 = IC(4);
2398 P8 = IC(4);
2399} else {
2400 P5 = I71(4, 5);
2401 P7 = I71(4, 7);
2402 P8 = I772(5, 7, 4);
2403}
2404} break;
2405case 221 :
2406{
2407P0 = I31(4,1);
2408P1 = I31(4,1);
2409P3 = IC(4);
2410P4 = IC(4);
2411P6 = I31(4, 6);
2412if (MDR) {
2413 P2 = I31(4,1);
2414 P5 = IC(4);
2415 P7 = IC(4);
2416 P8 = IC(4);
2417} else {
2418 P2 = I211(4, 1, 5);
2419 P5 = I31(5, 4);
2420 P7 = I31(4, 7);
2421 P8 = I11(5, 7);
2422}
2423} break;
2424case 222 :
2425{
2426P0 = I31(4, 0);
2427P3 = IC(4);
2428P4 = IC(4);
2429P5 = IC(4);
2430P6 = I31(4, 6);
2431if (MDR) {
2432 P7 = IC(4);
2433 P8 = IC(4);
2434} else {
2435 P7 = I71(4, 7);
2436 P8 = I772(5, 7, 4);
2437}
2438if (MUR) {
2439 P1 = IC(4);
2440 P2 = IC(4);
2441} else {
2442 P1 = I71(4, 1);
2443 P2 = I772(1, 5, 4);
2444}
2445} break;
2446case 223 :
2447{
2448P4 = IC(4);
2449P6 = I31(4, 6);
2450if (MDR) {
2451 P7 = IC(4);
2452 P8 = IC(4);
2453} else {
2454 P7 = I71(4, 7);
2455 P8 = I772(5, 7, 4);
2456}
2457if (MUL) {
2458 P0 = IC(4);
2459 P3 = IC(4);
2460} else {
2461 P0 = I772(1, 3, 4);
2462 P3 = I71(4, 3);
2463}
2464if (MUR) {
2465 P1 = IC(4);
2466 P2 = IC(4);
2467 P5 = IC(4);
2468} else {
2469 P1 = I71(4, 1);
2470 P2 = I211(4, 1, 5);
2471 P5 = I71(4, 5);
2472}
2473} break;
2474case 224 :
2475case 225 :
2476case 228 :
2477case 229 :
2478{
2479P0 = I211(4, 1, 3);
2480P1 = I31(4,1);
2481P2 = I211(4, 1, 5);
2482P3 = I31(4, 3);
2483P4 = IC(4);
2484P5 = I31(4,5);
2485P6 = I31(4, 3);
2486P7 = IC(4);
2487P8 = I31(4,5);
2488} break;
2489case 226 :
2490{
2491P0 = I31(4, 0);
2492P1 = IC(4);
2493P2 = I31(4, 2);
2494P3 = I31(4, 3);
2495P4 = IC(4);
2496P5 = I31(4,5);
2497P6 = I31(4, 3);
2498P7 = IC(4);
2499P8 = I31(4,5);
2500} break;
2501case 227 :
2502{
2503P0 = I31(4, 3);
2504P1 = IC(4);
2505P2 = I31(4, 2);
2506P3 = I31(4, 3);
2507P4 = IC(4);
2508P5 = I31(4,5);
2509P6 = I31(4, 3);
2510P7 = IC(4);
2511P8 = I31(4,5);
2512} break;
2513case 230 :
2514{
2515P0 = I31(4, 0);
2516P1 = IC(4);
2517P2 = I31(4,5);
2518P3 = I31(4, 3);
2519P4 = IC(4);
2520P5 = I31(4,5);
2521P6 = I31(4, 3);
2522P7 = IC(4);
2523P8 = I31(4,5);
2524} break;
2525case 231 :
2526{
2527P0 = I31(4, 3);
2528P1 = IC(4);
2529P2 = I31(4,5);
2530P3 = I31(4, 3);
2531P4 = IC(4);
2532P5 = I31(4,5);
2533P6 = I31(4, 3);
2534P7 = IC(4);
2535P8 = I31(4,5);
2536} break;
2537case 232 :
2538case 236 :
2539{
2540P0 = I31(4, 0);
2541P1 = I31(4,1);
2542P2 = I211(4, 1, 5);
2543P4 = IC(4);
2544P5 = I31(4,5);
2545if (MDL) {
2546 P3 = IC(4);
2547 P6 = IC(4);
2548 P7 = IC(4);
2549 P8 = I31(4,5);
2550} else {
2551 P3 = I31(4, 3);
2552 P6 = I11(3, 7);
2553 P7 = I31(7, 4);
2554 P8 = I211(4, 5, 7);
2555}
2556} break;
2557case 233 :
2558case 237 :
2559{
2560P0 = I31(4,1);
2561P1 = I31(4,1);
2562P2 = I211(4, 1, 5);
2563P3 = IC(4);
2564P4 = IC(4);
2565P5 = I31(4,5);
2566P7 = IC(4);
2567P8 = I31(4,5);
2568if (MDL) {
2569 P6 = IC(4);
2570} else {
2571 P6 = I211(4, 3, 7);
2572}
2573} break;
2574case 234 :
2575{
2576P1 = IC(4);
2577P2 = I31(4, 2);
2578P4 = IC(4);
2579P5 = I31(4,5);
2580P8 = I31(4,5);
2581if (MDL) {
2582 P3 = IC(4);
2583 P6 = IC(4);
2584 P7 = IC(4);
2585} else {
2586 P3 = I71(4, 3);
2587 P6 = I772(3, 7, 4);
2588 P7 = I71(4, 7);
2589}
2590if (MUL) {
2591 P0 = I31(4, 0);
2592} else {
2593 P0 = I211(4, 1, 3);
2594}
2595} break;
2596case 235 :
2597{
2598P2 = I31(4, 2);
2599P3 = IC(4);
2600P4 = IC(4);
2601P5 = I31(4,5);
2602P7 = IC(4);
2603P8 = I31(4,5);
2604if (MDL) {
2605 P6 = IC(4);
2606} else {
2607 P6 = I211(4, 3, 7);
2608}
2609if (MUL) {
2610 P0 = IC(4);
2611 P1 = IC(4);
2612} else {
2613 P0 = I772(1, 3, 4);
2614 P1 = I71(4, 1);
2615}
2616} break;
2617case 238 :
2618{
2619P0 = I31(4, 0);
2620P1 = IC(4);
2621P2 = I31(4,5);
2622P4 = IC(4);
2623P5 = I31(4,5);
2624if (MDL) {
2625 P3 = IC(4);
2626 P6 = IC(4);
2627 P7 = IC(4);
2628 P8 = I31(4,5);
2629} else {
2630 P3 = I31(4, 3);
2631 P6 = I11(3, 7);
2632 P7 = I31(7, 4);
2633 P8 = I211(4, 5, 7);
2634}
2635} break;
2636case 239 :
2637{
2638P1 = IC(4);
2639P2 = I31(4,5);
2640P3 = IC(4);
2641P4 = IC(4);
2642P5 = I31(4,5);
2643P7 = IC(4);
2644P8 = I31(4,5);
2645if (MDL) {
2646 P6 = IC(4);
2647} else {
2648 P6 = I211(4, 3, 7);
2649}
2650if (MUL) {
2651 P0 = IC(4);
2652} else {
2653 P0 = I211(4, 1, 3);
2654}
2655} break;
2656case 240 :
2657case 241 :
2658{
2659P0 = I211(4, 1, 3);
2660P1 = I31(4,1);
2661P2 = I31(4, 2);
2662P3 = I31(4, 3);
2663P4 = IC(4);
2664if (MDR) {
2665 P5 = IC(4);
2666 P6 = I31(4, 3);
2667 P7 = IC(4);
2668 P8 = IC(4);
2669} else {
2670 P5 = I31(4,5);
2671 P6 = I211(4, 3, 7);
2672 P7 = I31(7, 4);
2673 P8 = I11(5, 7);
2674}
2675} break;
2676case 242 :
2677{
2678P0 = I31(4, 0);
2679P1 = IC(4);
2680P3 = I31(4, 3);
2681P4 = IC(4);
2682P6 = I31(4, 3);
2683if (MDR) {
2684 P5 = IC(4);
2685 P7 = IC(4);
2686 P8 = IC(4);
2687} else {
2688 P5 = I71(4, 5);
2689 P7 = I71(4, 7);
2690 P8 = I772(5, 7, 4);
2691}
2692if (MUR) {
2693 P2 = I31(4, 2);
2694} else {
2695 P2 = I211(4, 1, 5);
2696}
2697} break;
2698case 243 :
2699{
2700P0 = I31(4, 3);
2701P1 = IC(4);
2702P2 = I31(4, 2);
2703P3 = I31(4, 3);
2704P4 = IC(4);
2705if (MDR) {
2706 P5 = IC(4);
2707 P6 = I31(4, 3);
2708 P7 = IC(4);
2709 P8 = IC(4);
2710} else {
2711 P5 = I31(4,5);
2712 P6 = I211(4, 3, 7);
2713 P7 = I31(7, 4);
2714 P8 = I11(5, 7);
2715}
2716} break;
2717case 244 :
2718case 245 :
2719{
2720P0 = I211(4, 1, 3);
2721P1 = I31(4,1);
2722P2 = I31(4,1);
2723P3 = I31(4, 3);
2724P4 = IC(4);
2725P5 = IC(4);
2726P6 = I31(4, 3);
2727P7 = IC(4);
2728if (MDR) {
2729 P8 = IC(4);
2730} else {
2731 P8 = I211(4, 5, 7);
2732}
2733} break;
2734case 246 :
2735{
2736P0 = I31(4, 0);
2737P3 = I31(4, 3);
2738P4 = IC(4);
2739P5 = IC(4);
2740P6 = I31(4, 3);
2741P7 = IC(4);
2742if (MDR) {
2743 P8 = IC(4);
2744} else {
2745 P8 = I211(4, 5, 7);
2746}
2747if (MUR) {
2748 P1 = IC(4);
2749 P2 = IC(4);
2750} else {
2751 P1 = I71(4, 1);
2752 P2 = I772(1, 5, 4);
2753}
2754} break;
2755case 247 :
2756{
2757P0 = I31(4, 3);
2758P1 = IC(4);
2759P3 = I31(4, 3);
2760P4 = IC(4);
2761P5 = IC(4);
2762P6 = I31(4, 3);
2763P7 = IC(4);
2764if (MDR) {
2765 P8 = IC(4);
2766} else {
2767 P8 = I211(4, 5, 7);
2768}
2769if (MUR) {
2770 P2 = IC(4);
2771} else {
2772 P2 = I211(4, 1, 5);
2773}
2774} break;
2775case 249 :
2776{
2777P0 = I31(4,1);
2778P1 = I31(4,1);
2779P2 = I31(4, 2);
2780P3 = IC(4);
2781P4 = IC(4);
2782P7 = IC(4);
2783if (MDL) {
2784 P6 = IC(4);
2785} else {
2786 P6 = I211(4, 3, 7);
2787}
2788if (MDR) {
2789 P5 = IC(4);
2790 P8 = IC(4);
2791} else {
2792 P5 = I71(4, 5);
2793 P8 = I772(5, 7, 4);
2794}
2795} break;
2796case 250 :
2797{
2798P0 = I31(4, 0);
2799P1 = IC(4);
2800P2 = I31(4, 2);
2801P4 = IC(4);
2802P7 = IC(4);
2803if (MDL) {
2804 P3 = IC(4);
2805 P6 = IC(4);
2806} else {
2807 P3 = I71(4, 3);
2808 P6 = I772(3, 7, 4);
2809}
2810if (MDR) {
2811 P5 = IC(4);
2812 P8 = IC(4);
2813} else {
2814 P5 = I71(4, 5);
2815 P8 = I772(5, 7, 4);
2816}
2817} break;
2818case 251 :
2819{
2820P2 = I31(4, 2);
2821P4 = IC(4);
2822if (MDL) {
2823 P3 = IC(4);
2824 P6 = IC(4);
2825 P7 = IC(4);
2826} else {
2827 P3 = I71(4, 3);
2828 P6 = I211(4, 3, 7);
2829 P7 = I71(4, 7);
2830}
2831if (MDR) {
2832 P5 = IC(4);
2833 P8 = IC(4);
2834} else {
2835 P5 = I71(4, 5);
2836 P8 = I772(5, 7, 4);
2837}
2838if (MUL) {
2839 P0 = IC(4);
2840 P1 = IC(4);
2841} else {
2842 P0 = I772(1, 3, 4);
2843 P1 = I71(4, 1);
2844}
2845} break;
2846case 252 :
2847{
2848P0 = I31(4, 0);
2849P1 = I31(4,1);
2850P2 = I31(4,1);
2851P4 = IC(4);
2852P5 = IC(4);
2853P7 = IC(4);
2854if (MDL) {
2855 P3 = IC(4);
2856 P6 = IC(4);
2857} else {
2858 P3 = I71(4, 3);
2859 P6 = I772(3, 7, 4);
2860}
2861if (MDR) {
2862 P8 = IC(4);
2863} else {
2864 P8 = I211(4, 5, 7);
2865}
2866} break;
2867case 253 :
2868{
2869P0 = I31(4,1);
2870P1 = I31(4,1);
2871P2 = I31(4,1);
2872P3 = IC(4);
2873P4 = IC(4);
2874P5 = IC(4);
2875P7 = IC(4);
2876if (MDL) {
2877 P6 = IC(4);
2878} else {
2879 P6 = I211(4, 3, 7);
2880}
2881if (MDR) {
2882 P8 = IC(4);
2883} else {
2884 P8 = I211(4, 5, 7);
2885}
2886} break;
2887case 254 :
2888{
2889P0 = I31(4, 0);
2890P4 = IC(4);
2891if (MDL) {
2892 P3 = IC(4);
2893 P6 = IC(4);
2894} else {
2895 P3 = I71(4, 3);
2896 P6 = I772(3, 7, 4);
2897}
2898if (MDR) {
2899 P5 = IC(4);
2900 P7 = IC(4);
2901 P8 = IC(4);
2902} else {
2903 P5 = I71(4, 5);
2904 P7 = I71(4, 7);
2905 P8 = I211(4, 5, 7);
2906}
2907if (MUR) {
2908 P1 = IC(4);
2909 P2 = IC(4);
2910} else {
2911 P1 = I71(4, 1);
2912 P2 = I772(1, 5, 4);
2913}
2914} break;
2915case 255 :
2916{
2917P1 = IC(4);
2918P3 = IC(4);
2919P4 = IC(4);
2920P5 = IC(4);
2921P7 = IC(4);
2922if (MDL) {
2923 P6 = IC(4);
2924} else {
2925 P6 = I211(4, 3, 7);
2926}
2927if (MDR) {
2928 P8 = IC(4);
2929} else {
2930 P8 = I211(4, 5, 7);
2931}
2932if (MUL) {
2933 P0 = IC(4);
2934} else {
2935 P0 = I211(4, 1, 3);
2936}
2937if (MUR) {
2938 P2 = IC(4);
2939} else {
2940 P2 = I211(4, 1, 5);
2941}
2942} break;
2943
2944#undef P0
2945#undef P1
2946#undef P2
2947#undef P3
2948#undef P4
2949#undef P5
2950#undef P6
2951#undef P7
2952#undef P8
2953#undef MUR
2954#undef MDR
2955#undef MDL
2956#undef MUL
2957#undef IC
2958#undef I11
2959#undef I211
2960#undef I31
2961#undef I332
2962#undef I431
2963#undef I521
2964#undef I53
2965#undef I611
2966#undef I71
2967#undef I772
2968#undef I97
2969#undef I1411
2970#undef I151