source: CGBLisp/src/colored-poly-tests.output@ 1

Last change on this file since 1 was 1, checked in by Marek Rychlik, 15 years ago

First import of a version circa 1997.

File size: 242.4 KB
Line 
1WARNING: Test 1
2------------------- CASE 1 -------------------
3Condition:
4 Green list: [ ]
5 Red list: [ ]
6 Basis: [ (4) * X + (5) * Y, ( - 10) * Y^2 ]
7WARNING: Test 2 - Enneper
8
9; in: LAMBDA NIL
10; (SETF CGB-LISP::VAL1
11; (COLORED-POLY:STRING-GROBNER-SYSTEM
12; "[x-3*u-3*u*v^2+u^3,y-3*v-3*u^2*v+v^3,z-3*u^2+3*v^2]"
13; '(CGB-LISP::U CGB-LISP::V CGB-LISP::X CGB-LISP::Y CGB-LISP::Z) 'NIL
14; :SUPPRESS-VALUE NIL))
15; ==>
16; (SETQ CGB-LISP::VAL1
17; (COLORED-POLY:STRING-GROBNER-SYSTEM
18; "[x-3*u-3*u*v^2+u^3,y-3*v-3*u^2*v+v^3,z-3*u^2+3*v^2]"
19; '(CGB-LISP::U CGB-LISP::V CGB-LISP::X CGB-LISP::Y CGB-LISP::Z) 'NIL
20; :SUPPRESS-VALUE NIL))
21;
22; caught WARNING:
23; undefined variable: VAL1
24
25;
26; caught WARNING:
27; This variable is undefined:
28; VAL1
29;
30; compilation unit finished
31; caught 2 WARNING conditions
32------------------- CASE 1 -------------------
33Condition:
34 Green list: [ ]
35 Red list: [ ]
36 Basis: [ ( - 3) * U^2 + (3) * V^2 + (1) * Z, (2) * V^3 + (1) * V * Z + (3) * V + ( - 1) * Y, ( - 6) * U * V^2 + (1) * U * Z + ( - 9) * U + (3) * X, (4) * U * V * Z + ( - 3) * U * Y + (3) * V * X, (9) * U * V * Y + ( - 2) * U * Z^2 + (18) * U * Z + ( - 9) * V^2 * X + ( - 6) * X * Z, ( - 27) * U * Y^2 + (8) * U * Z^3 + ( - 72) * U * Z^2 + (36) * V^2 * X * Z + (27) * V * X * Y + (24) * X * Z^2, (34992) * V^2 * X^2 + ( - 34992) * V^2 * Y^2 + ( - 186624) * V^2 * Z + ( - 15552) * V * Y * Z^2 + (46656) * V * Y * Z + (15552) * X^2 * Z + (93312) * X^2 + (19440) * Y^2 * Z + ( - 93312) * Y^2 + ( - 576) * Z^4 + (6912) * Z^3 + (15552) * Z^2 + ( - 279936) * Z, (139968) * U * X + (93312) * V^2 * Z + ( - 139968) * V * Y + (15552) * Z^2 + ( - 139968) * Z, (105815808) * V^2 * Y * Z + (52907904) * V * X^2 + ( - 52907904) * V * Y^2 + (15676416) * V * Z^3 + (141087744) * V * Z^2 + ( - 17635968) * Y * Z^2 + ( - 52907904) * Y * Z, (31104) * V^2 * Z^2 + (93312) * V^2 * Z + ( - 93312) * V * Y * Z + ( - 46656) * X^2 + (46656) * Y^2 + (1728) * Z^3 + ( - 31104) * Z^2 + (139968) * Z, (8817984) * V * X^2 * Z + (26453952) * V * X^2 + (44089920) * V * Y^2 * Z + ( - 26453952) * V * Y^2 + (2612736) * V * Z^4 + (31352832) * V * Z^3 + (70543872) * V * Z^2 + (26453952) * X^2 * Y + ( - 26453952) * Y^3 + ( - 3919104) * Y * Z^3 + ( - 105815808) * Y * Z, ( - 158723712) * V * X^2 * Y + ( - 317447424) * V * Y^3 * Z + (158723712) * V * Y^3 + ( - 23514624) * V * Y * Z^4 + ( - 188116992) * V * Y * Z^3 + ( - 634894848) * V * Y * Z^2 + (26453952) * X^4 + ( - 211631616) * X^2 * Y^2 + (6858432) * X^2 * Z^3 + (88179840) * X^2 * Z^2 + ( - 79361856) * X^2 * Z + (185177664) * Y^4 + (34292160) * Y^2 * Z^3 + ( - 35271936) * Y^2 * Z^2 + (714256704) * Y^2 * Z + ( - 290304) * Z^6 + (2612736) * Z^5 + (23514624) * Z^4 + ( - 211631616) * Z^3, ( - 317447424) * V * Y^3 * Z^2 + ( - 23514624) * V * Y * Z^5 + ( - 211631616) * V * Y * Z^4 + ( - 634894848) * V * Y * Z^3 + ( - 634894848) * V * Y * Z^2 + (26453952) * X^4 * Z + (79361856) * X^4 + ( - 211631616) * X^2 * Y^2 * Z + ( - 158723712) * X^2 * Y^2 + (6858432) * X^2 * Z^4 + (108755136) * X^2 * Z^3 + (185177664) * X^2 * Z^2 + ( - 238085568) * X^2 * Z + (185177664) * Y^4 * Z + (79361856) * Y^4 + (34292160) * Y^2 * Z^4 + ( - 2939328) * Y^2 * Z^3 + (608440896) * Y^2 * Z^2 + (238085568) * Y^2 * Z + ( - 290304) * Z^7 + (1741824) * Z^6 + (31352832) * Z^5 + ( - 141087744) * Z^4 + ( - 634894848) * Z^3, (79361856) * V * X^4 + (2539579392) * V * X^2 + (317447424) * V * Y^4 * Z + ( - 79361856) * V * Y^4 + (23514624) * V * Y^2 * Z^4 + (117573120) * V * Y^2 * Z^3 + ( - 423263232) * V * Y^2 * Z^2 + (5079158784) * V * Y^2 * Z + ( - 2539579392) * V * Y^2 + ( - 6967296) * V * Z^6 + ( - 125411328) * V * Z^5 + ( - 564350976) * V * Z^4 + (752467968) * V * Z^3 + (6772211712) * V * Z^2 + ( - 26453952) * X^4 * Y + (211631616) * X^2 * Y^3 + ( - 6858432) * X^2 * Y * Z^3 + ( - 255721536) * X^2 * Y * Z^2 + ( - 846526464) * X^2 * Y * Z + (2539579392) * X^2 * Y + ( - 185177664) * Y^5 + ( - 34292160) * Y^3 * Z^3 + (44089920) * Y^3 * Z^2 + (211631616) * Y^3 * Z + ( - 2539579392) * Y^3 + (290304) * Y * Z^6 + (10450944) * Y * Z^5 + (7838208) * Y * Z^4 + (188116992) * Y * Z^3 + (3386105856) * Y * Z^2 + ( - 10158317568) * Y * Z, ( - 714256704) * X^6 + (2142770112) * X^4 * Y^2 + ( - 396809280) * X^4 * Z^3 + ( - 4285540224) * X^4 * Z^2 + (2142770112) * X^4 * Z + ( - 2142770112) * X^2 * Y^4 + ( - 2063408256) * X^2 * Y^2 * Z^3 + ( - 4285540224) * X^2 * Y^2 * Z + ( - 47029248) * X^2 * Z^6 + ( - 1269789696) * X^2 * Z^5 + ( - 6348948480) * X^2 * Z^4 + (11428107264) * X^2 * Z^3 + (714256704) * Y^6 + ( - 396809280) * Y^4 * Z^3 + (4285540224) * Y^4 * Z^2 + (2142770112) * Y^4 * Z + (47029248) * Y^2 * Z^6 + ( - 1269789696) * Y^2 * Z^5 + (6348948480) * Y^2 * Z^4 + (11428107264) * Y^2 * Z^3 + (2322432) * Z^9 + ( - 376233984) * Z^7 + (15237476352) * Z^5 ]
37; in: LAMBDA NIL
38; (SETF CGB-LISP::VAL1
39; (GROBNER:GROBNER
40; (MAPCAR #'COLORED-POLY:COLORED-POLY-TO-POLY (CADAR CGB-LISP::VAL1))))
41; ==>
42; (SETQ CGB-LISP::VAL1
43; (GROBNER:GROBNER
44; (MAPCAR #'COLORED-POLY:COLORED-POLY-TO-POLY (CADAR CGB-LISP::VAL1))))
45;
46; caught WARNING:
47; undefined variable: VAL1
48
49;
50; caught WARNING:
51; This variable is undefined:
52; VAL1
53;
54; compilation unit finished
55; caught 2 WARNING conditions
56WARNING: Test 1
57------------------- CASE 1 -------------------
58Condition:
59 Green list: [ ]
60 Red list: [ ]
61 Basis: [ (4) * X + (5) * Y, ( - 10) * Y^2 ]
62WARNING: Test 2 - Enneper
63------------------- CASE 1 -------------------
64Condition:
65 Green list: [ ]
66 Red list: [ ]
67 Basis: [ ( - 3) * U^2 + (3) * V^2 + (1) * Z, (2) * V^3 + (1) * V * Z + (3) * V + ( - 1) * Y, ( - 6) * U * V^2 + (1) * U * Z + ( - 9) * U + (3) * X, (4) * U * V * Z + ( - 3) * U * Y + (3) * V * X, (9) * U * V * Y + ( - 2) * U * Z^2 + (18) * U * Z + ( - 9) * V^2 * X + ( - 6) * X * Z, ( - 27) * U * Y^2 + (8) * U * Z^3 + ( - 72) * U * Z^2 + (36) * V^2 * X * Z + (27) * V * X * Y + (24) * X * Z^2, (34992) * V^2 * X^2 + ( - 34992) * V^2 * Y^2 + ( - 186624) * V^2 * Z + ( - 15552) * V * Y * Z^2 + (46656) * V * Y * Z + (15552) * X^2 * Z + (93312) * X^2 + (19440) * Y^2 * Z + ( - 93312) * Y^2 + ( - 576) * Z^4 + (6912) * Z^3 + (15552) * Z^2 + ( - 279936) * Z, (139968) * U * X + (93312) * V^2 * Z + ( - 139968) * V * Y + (15552) * Z^2 + ( - 139968) * Z, (105815808) * V^2 * Y * Z + (52907904) * V * X^2 + ( - 52907904) * V * Y^2 + (15676416) * V * Z^3 + (141087744) * V * Z^2 + ( - 17635968) * Y * Z^2 + ( - 52907904) * Y * Z, (31104) * V^2 * Z^2 + (93312) * V^2 * Z + ( - 93312) * V * Y * Z + ( - 46656) * X^2 + (46656) * Y^2 + (1728) * Z^3 + ( - 31104) * Z^2 + (139968) * Z, (8817984) * V * X^2 * Z + (26453952) * V * X^2 + (44089920) * V * Y^2 * Z + ( - 26453952) * V * Y^2 + (2612736) * V * Z^4 + (31352832) * V * Z^3 + (70543872) * V * Z^2 + (26453952) * X^2 * Y + ( - 26453952) * Y^3 + ( - 3919104) * Y * Z^3 + ( - 105815808) * Y * Z, ( - 158723712) * V * X^2 * Y + ( - 317447424) * V * Y^3 * Z + (158723712) * V * Y^3 + ( - 23514624) * V * Y * Z^4 + ( - 188116992) * V * Y * Z^3 + ( - 634894848) * V * Y * Z^2 + (26453952) * X^4 + ( - 211631616) * X^2 * Y^2 + (6858432) * X^2 * Z^3 + (88179840) * X^2 * Z^2 + ( - 79361856) * X^2 * Z + (185177664) * Y^4 + (34292160) * Y^2 * Z^3 + ( - 35271936) * Y^2 * Z^2 + (714256704) * Y^2 * Z + ( - 290304) * Z^6 + (2612736) * Z^5 + (23514624) * Z^4 + ( - 211631616) * Z^3, ( - 317447424) * V * Y^3 * Z^2 + ( - 23514624) * V * Y * Z^5 + ( - 211631616) * V * Y * Z^4 + ( - 634894848) * V * Y * Z^3 + ( - 634894848) * V * Y * Z^2 + (26453952) * X^4 * Z + (79361856) * X^4 + ( - 211631616) * X^2 * Y^2 * Z + ( - 158723712) * X^2 * Y^2 + (6858432) * X^2 * Z^4 + (108755136) * X^2 * Z^3 + (185177664) * X^2 * Z^2 + ( - 238085568) * X^2 * Z + (185177664) * Y^4 * Z + (79361856) * Y^4 + (34292160) * Y^2 * Z^4 + ( - 2939328) * Y^2 * Z^3 + (608440896) * Y^2 * Z^2 + (238085568) * Y^2 * Z + ( - 290304) * Z^7 + (1741824) * Z^6 + (31352832) * Z^5 + ( - 141087744) * Z^4 + ( - 634894848) * Z^3, (79361856) * V * X^4 + (2539579392) * V * X^2 + (317447424) * V * Y^4 * Z + ( - 79361856) * V * Y^4 + (23514624) * V * Y^2 * Z^4 + (117573120) * V * Y^2 * Z^3 + ( - 423263232) * V * Y^2 * Z^2 + (5079158784) * V * Y^2 * Z + ( - 2539579392) * V * Y^2 + ( - 6967296) * V * Z^6 + ( - 125411328) * V * Z^5 + ( - 564350976) * V * Z^4 + (752467968) * V * Z^3 + (6772211712) * V * Z^2 + ( - 26453952) * X^4 * Y + (211631616) * X^2 * Y^3 + ( - 6858432) * X^2 * Y * Z^3 + ( - 255721536) * X^2 * Y * Z^2 + ( - 846526464) * X^2 * Y * Z + (2539579392) * X^2 * Y + ( - 185177664) * Y^5 + ( - 34292160) * Y^3 * Z^3 + (44089920) * Y^3 * Z^2 + (211631616) * Y^3 * Z + ( - 2539579392) * Y^3 + (290304) * Y * Z^6 + (10450944) * Y * Z^5 + (7838208) * Y * Z^4 + (188116992) * Y * Z^3 + (3386105856) * Y * Z^2 + ( - 10158317568) * Y * Z, ( - 714256704) * X^6 + (2142770112) * X^4 * Y^2 + ( - 396809280) * X^4 * Z^3 + ( - 4285540224) * X^4 * Z^2 + (2142770112) * X^4 * Z + ( - 2142770112) * X^2 * Y^4 + ( - 2063408256) * X^2 * Y^2 * Z^3 + ( - 4285540224) * X^2 * Y^2 * Z + ( - 47029248) * X^2 * Z^6 + ( - 1269789696) * X^2 * Z^5 + ( - 6348948480) * X^2 * Z^4 + (11428107264) * X^2 * Z^3 + (714256704) * Y^6 + ( - 396809280) * Y^4 * Z^3 + (4285540224) * Y^4 * Z^2 + (2142770112) * Y^4 * Z + (47029248) * Y^2 * Z^6 + ( - 1269789696) * Y^2 * Z^5 + (6348948480) * Y^2 * Z^4 + (11428107264) * Y^2 * Z^3 + (2322432) * Z^9 +WARNING: Test 1
68
69------------------- CASE 1 -------------------
70Condition:
71 Green list: [ ]
72 Red list: [ ]
73 Basis: [ (4) * X + (5) * Y, ( - 10) * Y^2 ]
74WARNING: Test 2 - Enneper
75
76------------------- CASE 1 -------------------
77Condition:
78 Green list: [ ]
79 Red list: [ ]
80 Basis: [ ( - 3) * U^2 + (3) * V^2 + (1) * Z, (2) * V^3 + (1) * V * Z + (3) * V + ( - 1) * Y, ( - 6) * U * V^2 + (1) * U * Z + ( - 9) * U + (3) * X, (4) * U * V * Z + ( - 3) * U * Y + (3) * V * X, (9) * U * V * Y + ( - 2) * U * Z^2 + (18) * U * Z + ( - 9) * V^2 * X + ( - 6) * X * Z, ( - 27) * U * Y^2 + (8) * U * Z^3 + ( - 72) * U * Z^2 + (36) * V^2 * X * Z + (27) * V * X * Y + (24) * X * Z^2, (34992) * V^2 * X^2 + ( - 34992) * V^2 * Y^2 + ( - 186624) * V^2 * Z + ( - 15552) * V * Y * Z^2 + (46656) * V * Y * Z + (15552) * X^2 * Z + (93312) * X^2 + (19440) * Y^2 * Z + ( - 93312) * Y^2 + ( - 576) * Z^4 + (6912) * Z^3 + (15552) * Z^2 + ( - 279936) * Z, (139968) * U * X + (93312) * V^2 * Z + ( - 139968) * V * Y + (15552) * Z^2 + ( - 139968) * Z, (105815808) * V^2 * Y * Z + (52907904) * V * X^2 + ( - 52907904) * V * Y^2 + (15676416) * V * Z^3 + (141087744) * V * Z^2 + ( - 17635968) * Y * Z^2 + ( - 52907904) * Y * Z, (31104) * V^2 * Z^2 + (93312) * V^2 * Z + ( - 93312) * V * Y * Z + ( - 46656) * X^2 + (46656) * Y^2 + (1728) * Z^3 + ( - 31104) * Z^2 + (139968) * Z, (8817984) * V * X^2 * Z + (26453952) * V * X^2 + (44089920) * V * Y^2 * Z + ( - 26453952) * V * Y^2 + (2612736) * V * Z^4 + (31352832) * V * Z^3 + (70543872) * V * Z^2 + (26453952) * X^2 * Y + ( - 26453952) * Y^3 + ( - 3919104) * Y * Z^3 + ( - 105815808) * Y * Z, ( - 158723712) * V * X^2 * Y + ( - 317447424) * V * Y^3 * Z + (158723712) * V * Y^3 + ( - 23514624) * V * Y * Z^4 + ( - 188116992) * V * Y * Z^3 + ( - 634894848) * V * Y * Z^2 + (26453952) * X^4 + ( - 211631616) * X^2 * Y^2 + (6858432) * X^2 * Z^3 + (88179840) * X^2 * Z^2 + ( - 79361856) * X^2 * Z + (185177664) * Y^4 + (34292160) * Y^2 * Z^3 + ( - 35271936) * Y^2 * Z^2 + (714256704) * Y^2 * Z + ( - 290304) * Z^6 + (2612736) * Z^5 + (23514624) * Z^4 + ( - 211631616) * Z^3, ( - 317447424) * V * Y^3 * Z^2 + ( - 23514624) * V * Y * Z^5 + ( - 211631616) * V * Y * Z^4 + ( - 634894848) * V * Y * Z^3 + ( - 634894848) * V * Y * Z^2 + (26453952) * X^4 * Z + (79361856) * X^4 + ( - 211631616) * X^2 * Y^2 * Z + ( - 158723712) * X^2 * Y^2 + (6858432) * X^2 * Z^4 + (108755136) * X^2 * Z^3 + (185177664) * X^2 * Z^2 + ( - 238085568) * X^2 * Z + (185177664) * Y^4 * Z + (79361856) * Y^4 + (34292160) * Y^2 * Z^4 + ( - 2939328) * Y^2 * Z^3 + (608440896) * Y^2 * Z^2 + (238085568) * Y^2 * Z + ( - 290304) * Z^7 + (1741824) * Z^6 + (31352832) * Z^5 + ( - 141087744) * Z^4 + ( - 634894848) * Z^3, (79361856) * V * X^4 + (2539579392) * V * X^2 + (317447424) * V * Y^4 * Z + ( - 79361856) * V * Y^4 + (23514624) * V * Y^2 * Z^4 + (117573120) * V * Y^2 * Z^3 + ( - 423263232) * V * Y^2 * Z^2 + (5079158784) * V * Y^2 * Z + ( - 2539579392) * V * Y^2 + ( - 6967296) * V * Z^6 + ( - 125411328) * V * Z^5 + ( - 564350976) * V * Z^4 + (752467968) * V * Z^3 + (6772211712) * V * Z^2 + ( - 26453952) * X^4 * Y + (211631616) * X^2 * Y^3 + ( - 6858432) * X^2 * Y * Z^3 + ( - 255721536) * X^2 * Y * Z^2 + ( - 846526464) * X^2 * Y * Z + (2539579392) * X^2 * Y + ( - 185177664) * Y^5 + ( - 34292160) * Y^3 * Z^3 + (44089920) * Y^3 * Z^2 + (211631616) * Y^3 * Z + ( - 2539579392) * Y^3 + (290304) * Y * Z^6 + (10450944) * Y * Z^5 + (7838208) * Y * Z^4 + (188116992) * Y * Z^3 + (3386105856) * Y * Z^2 + ( - 10158317568) * Y * Z, ( - 714256704) * X^6 + (2142770112) * X^4 * Y^2 + ( - 396809280) * X^4 * Z^3 + ( - 4285540224) * X^4 * Z^2 + (2142770112) * X^4 * Z + ( - 2142770112) * X^2 * Y^4 + ( - 2063408256) * X^2 * Y^2 * Z^3 + ( - 4285540224) * X^2 * Y^2 * Z + ( - 47029248) * X^2 * Z^6 + ( - 1269789696) * X^2 * Z^5 + ( - 6348948480) * X^2 * Z^4 + (11428107264) * X^2 * Z^3 + (714256704) * Y^6 + ( - 396809280) * Y^4 * Z^3 + (4285540224) * Y^4 * Z^2 + (2142770112) * Y^4 * Z + (47029248) * Y^2 * Z^6 + ( - 1269789696) * Y^2 * Z^5 + (6348948480) * Y^2 * Z^4 + (11428107264) * Y^2 * Z^3 + (2322432) * Z^9 + ( - 376233984) * Z^7 + (15237476352) * Z^5 ]:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:BWARNING: Test 1
81
82------------------- CASE 1 -------------------
83Condition:
84 Green list: [ ]
85 Red list: [ ]
86 Basis: [ (4) * X + (5) * Y, ( - 10) * Y^2 ]
87WARNING: Test 2 - Enneper
88
89------------------- CASE 1 -------------------
90Condition:
91 Green list: [ ]
92 Red list: [ ]
93 Basis: [ ( - 3) * U^2 + (3) * V^2 + (1) * Z, (2) * V^3 + (1) * V * Z + (3) * V + ( - 1) * Y, ( - 6) * U * V^2 + (1) * U * Z + ( - 9) * U + (3) * X, (4) * U * V * Z + ( - 3) * U * Y + (3) * V * X, (9) * U * V * Y + ( - 2) * U * Z^2 + (18) * U * Z + ( - 9) * V^2 * X + ( - 6) * X * Z, ( - 27) * U * Y^2 + (8) * U * Z^3 + ( - 72) * U * Z^2 + (36) * V^2 * X * Z + (27) * V * X * Y + (24) * X * Z^2, (34992) * V^2 * X^2 + ( - 34992) * V^2 * Y^2 + ( - 186624) * V^2 * Z + ( - 15552) * V * Y * Z^2 + (46656) * V * Y * Z + (15552) * X^2 * Z + (93312) * X^2 + (19440) * Y^2 * Z + ( - 93312) * Y^2 + ( - 576) * Z^4 + (6912) * Z^3 + (15552) * Z^2 + ( - 279936) * Z, (139968) * U * X + (93312) * V^2 * Z + ( - 139968) * V * Y + (15552) * Z^2 + ( - 139968) * Z, (105815808) * V^2 * Y * Z + (52907904) * V * X^2 + ( - 52907904) * V * Y^2 + (15676416) * V * Z^3 + (141087744) * V * Z^2 + ( - 17635968) * Y * Z^2 + ( - 52907904) * Y * Z, (31104) * V^2 * Z^2 + (93312) * V^2 * Z + ( - 93312) * V * Y * Z + ( - 46656) * X^2 + (46656) * Y^2 + (1728) * Z^3 + ( - 31104) * Z^2 + (139968) * Z, (8817984) * V * X^2 * Z + (26453952) * V * X^2 + (44089920) * V * Y^2 * Z + ( - 26453952) * V * Y^2 + (2612736) * V * Z^4 + (31352832) * V * Z^3 + (70543872) * V * Z^2 + (26453952) * X^2 * Y + ( - 26453952) * Y^3 + ( - 3919104) * Y * Z^3 + ( - 105815808) * Y * Z, ( - 158723712) * V * X^2 * Y + ( - 317447424) * V * Y^3 * Z + (158723712) * V * Y^3 + ( - 23514624) * V * Y * Z^4 + ( - 188116992) * V * Y * Z^3 + ( - 634894848) * V * Y * Z^2 + (26453952) * X^4 + ( - 211631616) * X^2 * Y^2 + (6858432) * X^2 * Z^3 + (88179840) * X^2 * Z^2 + ( - 79361856) * X^2 * Z + (185177664) * Y^4 + (34292160) * Y^2 * Z^3 + ( - 35271936) * Y^2 * Z^2 + (714256704) * Y^2 * Z + ( - 290304) * Z^6 + (2612736) * Z^5 + (23514624) * Z^4 + ( - 211631616) * Z^3, ( - 317447424) * V * Y^3 * Z^2 + ( - 23514624) * V * Y * Z^5 + ( - 211631616) * V * Y * Z^4 + ( - 634894848) * V * Y * Z^3 + ( - 634894848) * V * Y * Z^2 + (26453952) * X^4 * Z + (79361856) * X^4 + ( - 211631616) * X^2 * Y^2 * Z + ( - 158723712) * X^2 * Y^2 + (6858432) * X^2 * Z^4 + (108755136) * X^2 * Z^3 + (185177664) * X^2 * Z^2 + ( - 238085568) * X^2 * Z + (185177664) * Y^4 * Z + (79361856) * Y^4 + (34292160) * Y^2 * Z^4 + ( - 2939328) * Y^2 * Z^3 + (608440896) * Y^2 * Z^2 + (238085568) * Y^2 * Z + ( - 290304) * Z^7 + (1741824) * Z^6 + (31352832) * Z^5 + ( - 141087744) * Z^4 + ( - 634894848) * Z^3, (79361856) * V * X^4 + (2539579392) * V * X^2 + (317447424) * V * Y^4 * Z + ( - 79361856) * V * Y^4 + (23514624) * V * Y^2 * Z^4 + (117573120) * V * Y^2 * Z^3 + ( - 423263232) * V * Y^2 * Z^2 + (5079158784) * V * Y^2 * Z + ( - 2539579392) * V * Y^2 + ( - 6967296) * V * Z^6 + ( - 125411328) * V * Z^5 + ( - 564350976) * V * Z^4 + (752467968) * V * Z^3 + (6772211712) * V * Z^2 + ( - 26453952) * X^4 * Y + (211631616) * X^2 * Y^3 + ( - 6858432) * X^2 * Y * Z^3 + ( - 255721536) * X^2 * Y * Z^2 + ( - 846526464) * X^2 * Y * Z + (2539579392) * X^2 * Y + ( - 185177664) * Y^5 + ( - 34292160) * Y^3 * Z^3 + (44089920) * Y^3 * Z^2 + (211631616) * Y^3 * Z + ( - 2539579392) * Y^3 + (290304) * Y * Z^6 + (10450944) * Y * Z^5 + (7838208) * Y * Z^4 + (188116992) * Y * Z^3 + (3386105856) * Y * Z^2 + ( - 10158317568) * Y * Z, ( - 714256704) * X^6 + (2142770112) * X^4 * Y^2 + ( - 396809280) * X^4 * Z^3 + ( - 4285540224) * X^4 * Z^2 + (2142770112) * X^4 * Z + ( - 2142770112) * X^2 * Y^4 + ( - 2063408256) * X^2 * Y^2 * Z^3 + ( - 4285540224) * X^2 * Y^2 * Z + ( - 47029248) * X^2 * Z^6 + ( - 1269789696) * X^2 * Z^5 + ( - 6348948480) * X^2 * Z^4 + (11428107264) * X^2 * Z^3 + (714256704) * Y^6 + ( - 396809280) * Y^4 * Z^3 + (4285540224) * Y^4 * Z^2 + (2142770112) * Y^4 * Z + (47029248) * Y^2 * Z^6 + ( - 1269789696) * Y^2 * Z^5 + (6348948480) * Y^2 * Z^4 + (11428107264) * Y^2 * Z^3 + (2322432) * Z^9 + ( - 376233984) * Z^7 + (15237476352) * Z^5 ]:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
94Args:[ U^3 - 3 * U * V^2 - 3 * U + X, - 3 * U^2 * V + V^3 - 3 * V + Y, - 3 * U^2 + 3 * V^2 + Z ]:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2[ 3 * U^2 - 3 * V^2 - Z, 6 * U * V^2 - U * Z + 9 * U - 3 * X, 2 * V^3 + V * Z + 3 * V - Y, 4 * U * V * Z - 3 * U * Y + 3 * V * X, 9 * U * X + 6 * V^2 * Z - 9 * V * Y + Z^2 - 9 * Z, 9 * U * V * Y - 2 * U * Z^2 + 18 * U * Z - 9 * V^2 * X - 6 * X * Z, 27 * U * Y^2 - 8 * U * Z^3 + 72 * U * Z^2 - 36 * V^2 * X * Z - 27 * V * X * Y - 24 * X * Z^2, 18 * V^2 * Z^2 + 54 * V^2 * Z - 54 * V * Y * Z - 27 * X^2 + 27 * Y^2 + Z^3 - 18 * Z^2 + 81 * Z, 243 * V^2 * X^2 - 243 * V^2 * Y^2 - 1296 * V^2 * Z - 108 * V * Y * Z^2 + 324 * V * Y * Z + 108 * X^2 * Z + 648 * X^2 + 135 * Y^2 * Z - 648 * Y^2 - 4 * Z^4 + 48 * Z^3 + 108 * Z^2 - 1944 * Z, 54 * V^2 * Y * Z + 27 * V * X^2 - 27 * V * Y^2 + 8 * V * Z^3 + 72 * V * Z^2 - 9 * Y * Z^2 - 27 * Y * Z, 27 * V * X^2 * Z + 81 * V * X^2 + 135 * V * Y^2 * Z - 81 * V * Y^2 + 8 * V * Z^4 + 96 * V * Z^3 + 216 * V * Z^2 + 81 * X^2 * Y - 81 * Y^3 - 12 * Y * Z^3 - 324 * Y * Z, 4374 * V * X^2 * Y + 8748 * V * Y^3 * Z - 4374 * V * Y^3 + 648 * V * Y * Z^4 + 5184 * V * Y * Z^3 + 17496 * V * Y * Z^2 - 729 * X^4 + 5832 * X^2 * Y^2 - 189 * X^2 * Z^3 - 2430 * X^2 * Z^2 + 2187 * X^2 * Z - 5103 * Y^4 - 945 * Y^2 * Z^3 + 972 * Y^2 * Z^2 - 19683 * Y^2 * Z + 8 * Z^6 - 72 * Z^5 - 648 * Z^4 + 5832 * Z^3, 8748 * V * Y^3 * Z^2 + 648 * V * Y * Z^5 + 5832 * V * Y * Z^4 + 17496 * V * Y * Z^3 + 17496 * V * Y * Z^2 - 729 * X^4 * Z - 2187 * X^4 + 5832 * X^2 * Y^2 * Z + 4374 * X^2 * Y^2 - 189 * X^2 * Z^4 - 2997 * X^2 * Z^3 - 5103 * X^2 * Z^2 + 6561 * X^2 * Z - 5103 * Y^4 * Z - 2187 * Y^4 - 945 * Y^2 * Z^4 + 81 * Y^2 * Z^3 - 16767 * Y^2 * Z^2 - 6561 * Y^2 * Z + 8 * Z^7 - 48 * Z^6 - 864 * Z^5 + 3888 * Z^4 + 17496 * Z^3, 19683 * X^6 - 59049 * X^4 * Y^2 + 10935 * X^4 * Z^3 + 118098 * X^4 * Z^2 - 59049 * X^4 * Z + 59049 * X^2 * Y^4 + 56862 * X^2 * Y^2 * Z^3 + 118098 * X^2 * Y^2 * Z + 1296 * X^2 * Z^6 + 34992 * X^2 * Z^5 + 174960 * X^2 * Z^4 - 314928 * X^2 * Z^3 - 19683 * Y^6 + 10935 * Y^4 * Z^3 - 118098 * Y^4 * Z^2 - 59049 * Y^4 * Z - 1296 * Y^2 * Z^6 + 34992 * Y^2 * Z^5 - 174960 * Y^2 * Z^4 - 314928 * Y^2 * Z^3 - 64 * Z^9 + 10368 * Z^7 - 419904 * Z^5, 2187 * V * X^4 + 69984 * V * X^2 + 8748 * V * Y^4 * Z - 2187 * V * Y^4 + 648 * V * Y^2 * Z^4 + 3240 * V * Y^2 * Z^3 - 11664 * V * Y^2 * Z^2 + 139968 * V * Y^2 * Z - 69984 * V * Y^2 - 192 * V * Z^6 - 3456 * V * Z^5 - 15552 * V * Z^4 + 20736 * V * Z^3 + 186624 * V * Z^2 - 729 * X^4 * Y + 5832 * X^2 * Y^3 - 189 * X^2 * Y * Z^3 - 7047 * X^2 * Y * Z^2 - 23328 * X^2 * Y * Z + 69984 * X^2 * Y - 5103 * Y^5 - 945 * Y^3 * Z^3 + 1215 * Y^3 * Z^2 + 5832 * Y^3 * Z - 69984 * Y^3 + 8 * Y * Z^6 + 288 * Y * Z^5 + 216 * Y * Z^4 + 5184 * Y * Z^3 + 93312 * Y * Z^2 - 279936 * Y * Z ]
95WARNING: Test 3 - staple
96:B2:B2:B2
97------------------- CASE 1 -------------------
98Condition:
99 Green list: [ ]
100 Red list: [ U - 1 ]
101 Basis: [ (U - 1) * X, ( - U + 1) * Y ]
102------------------- CASE 2 -------------------
103Condition:
104 Green list: [ U - 1 ]
105 Red list: [ ]
106 Basis: [ (1) * X + (1) * Y ]
107WARNING: Test 4 - staple
108:B2:B2:B2
109------------------- CASE 1 -------------------
110Condition:
111 Green list: [ U ]
112 Red list: [ ]
113 Basis: [ (1) * X, (1) * Y ]
114------------------- CASE 2 -------------------
115Condition:
116 Green list: [ ]
117 Red list: [ U, U - 1 ]
118 Basis: [ (U^2 - U) * X, (U - 1) * Y ]
119------------------- CASE 3 -------------------
120Condition:
121 Green list: [ U - 1 ]
122 Red list: [ U ]
123 Basis: [ (1) * X + (1) * Y ]
124WARNING: Test 5 - a small robot example
125:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
126------------------- CASE 1 -------------------
127Condition:
128 Green list: [ ]
129 Red list: [ L3, A^2 + B^2, L2, A ]
130 Basis: [ ( - 2 * A * L2 * L3) * S2 + ( - 2 * A^2 * L2 - 2 * B^2 * L2) * S1 + (A^2 * B + B^3 + B * L2^2 - B * L3^2), ( - 2 * L2 * L3) * C2 + (A^2 + B^2 - L2^2 - L3^2), ( - 2 * A * L2) * C1 + ( - 2 * B * L2) * S1 + (A^2 + B^2 + L2^2 - L3^2), (4 * A^2 * L2^2 + 4 * B^2 * L2^2) * S1^2 + ( - 4 * A^2 * B * L2 - 4 * B^3 * L2 - 4 * B * L2^3 + 4 * B * L2 * L3^2) * S1 + (A^4 + 2 * A^2 * B^2 - 2 * A^2 * L2^2 - 2 * A^2 * L3^2 + B^4 + 2 * B^2 * L2^2 - 2 * B^2 * L3^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4) ]
131------------------- CASE 2 -------------------
132Condition:
133 Green list: [ A^2 + B^2 ]
134 Red list: [ L3, A^2 * B + B^3 + B * L2^2 - B * L3^2, L2, A ]
135 Basis: [ (4 * A * B * L2^3 * L3 - 4 * A * B * L2 * L3^3) * S2 + ( - 2 * B^2 * L2^4 + 4 * B^2 * L2^2 * L3^2 - 2 * B^2 * L3^4), ( - 2 * L2 * L3) * C2 + ( - L2^2 - L3^2), (4 * A * L2^3 - 4 * A * L2 * L3^2) * C1 + (4 * B^2 * L2^2 - L2^4 + 2 * L2^2 * L3^2 - L3^4), ( - 4 * B * L2^3 + 4 * B * L2 * L3^2) * S1 + (4 * B^2 * L2^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4) ]
136------------------- CASE 3 -------------------
137Condition:
138 Green list: [ A^2 + B^2, L2^2 - L3^2 ]
139 Red list: [ L3, A, L2, A^4 + 2 * A^2 * B^2 - 2 * A^2 * L2^2 - 2 * A^2 * L3^2 + B^4 + 2 * B^2 * L2^2 - 2 * B^2 * L3^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4 ]
140 Basis: [ (4 * B^2 * L3^2) ]
141------------------- CASE 4 -------------------
142Condition:
143 Green list: [ A ]
144 Red list: [ L3, B, L2 ]
145 Basis: [ (4 * B^2 * L2^2) * C1^2 + (B^4 - 2 * B^2 * L2^2 - 2 * B^2 * L3^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4), (2 * B * L2 * L3) * S2 + ( - 2 * B^2 * L2) * C1 + (0), ( - 2 * L2 * L3) * C2 + (0) * C1 + (B^2 - L2^2 - L3^2), ( - 2 * B * L2) * S1 + (B^2 + L2^2 - L3^2) ]
146------------------- CASE 5 -------------------
147Condition:
148 Green list: [ A, B ]
149 Red list: [ L3, L2, A^2 + B^2 + L2^2 - L3^2 ]
150 Basis: [ (L2^2 - L3^2) ]
151------------------- CASE 6 -------------------
152Condition:
153 Green list: [ A, B, L2^2 - L3^2 ]
154 Red list: [ L3, L2 ]
155 Basis: [ (1) * C1^2 + (1) * S1^2 + ( - 1), (L3) * S2 + (0) * C1 + (0) * S1, (L3) * C2 + (0) * C1 + (0) * S1 + (L2) ]
156WARNING: Test 6 - Circle of Apollonius
157:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
158------------------- CASE 1 -------------------
159Condition:
160 Green list: [ U2, U1 ]
161 Red list: [ ]
162 Basis: [ (2) * X1 + (0), (2) * X2 + (0), (2) * X3 + (0), (2) * X4 + (0), ( - 4) * X6^2 + (8) * X6 * X8 + (0) * X8 + (0), (4) * S * X5^2 + ( - 8) * S * X5 * X7 + (0) * S * X7 + (0) * S * X8 + (0) * S + ( - 4) ]
163------------------- CASE 2 -------------------
164Condition:
165 Green list: [ U2 ]
166 Red list: [ U1 ]
167 Basis: [ ( - 4 * U1^3) ]
168------------------- CASE 3 -------------------
169Condition:
170 Green list: [ U1 ]
171 Red list: [ U2 ]
172 Basis: [ (4 * U2^2) ]
173------------------- CASE 4 -------------------
174Condition:
175 Green list: [ ]
176 Red list: [ U1, U2, U1^2 - U2^2, U1^2 + U2^2 ]
177 Basis: [ (2) * X1 + ( - U1), (2) * X2 + ( - U2), (2) * X3 + ( - U1), (2) * X4 + ( - U2), (U1^2 * U2 + U2^3) * X5 + ( - U1 * U2^3), ( - U1^2 - U2^2) * X6 + (U1^2 * U2), ( - 4 * U1^5 + 4 * U1 * U2^4) * X7 + (U1^6 + 2 * U1^4 * U2^2 - 3 * U1^2 * U2^4), ( - 4 * U1^4 * U2 + 4 * U2^5) * X8 + (3 * U1^4 * U2^2 - 2 * U1^2 * U2^4 - U2^6), (2 * U1^6 * U2^2 - 2 * U1^4 * U2^4) * S + (4 * U1^6 - 4 * U1^2 * U2^4) ]
178------------------- CASE 5 -------------------
179Condition:
180 Green list: [ U1^2 - U2^2 ]
181 Red list: [ U1, U1^2 + U2^2, U2 ]
182 Basis: [ (2) * X1 + ( - U1), (2) * X2 + ( - U2), (2) * X3 + ( - U1), (2) * X4 + ( - U2), (2 * U2^3) * X5 + ( - U1 * U2^3), ( - 2 * U2^2) * X6 + (U2^3), (4 * U1) * X7 + ( - 4 * U2) * X8 + (0), ( - 8 * U2^5) * S * X8 + (2 * U2^6) * S + ( - 8 * U2^4) ]
183------------------- CASE 6 -------------------
184Condition:
185 Green list: [ U1^2 + U2^2 ]
186 Red list: [ U1, U2 ]
187 Basis: [ ( - U2^3) ]
188WARNING: Test 7
189; in: LAMBDA NIL
190; (SETF CGB-LISP::FL
191; (CDR
192; (PARSE:PARSE-STRING-TO-SORTED-ALIST
193; "[a^2*x^2*y+b*x^2*y+a^3*b*x*y+a^3*c*x*y,c^2*a*x^2+c^2*b*x^2+b*y+4]"
194; '(CGB-LISP::X CGB-LISP::Y CGB-LISP::A CGB-LISP::B CGB-LISP::C))))
195; ==>
196; (SETQ CGB-LISP::FL
197; (CDR
198; (PARSE:PARSE-STRING-TO-SORTED-ALIST
199; "[a^2*x^2*y+b*x^2*y+a^3*b*x*y+a^3*c*x*y,c^2*a*x^2+c^2*b*x^2+b*y+4]"
200; '(CGB-LISP::X CGB-LISP::Y CGB-LISP::A CGB-LISP::B CGB-LISP::C))))
201;
202; caught WARNING:
203; undefined variable: FL
204
205;
206; caught WARNING:
207; This variable is undefined:
208; FL
209;
210; compilation unit finished
211; caught 2 WARNING conditions
212
213; in: LAMBDA NIL
214; (SETF CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 2))
215; ==>
216; (SETQ CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 2))
217;
218; caught WARNING:
219; undefined variable: CFL
220
221; (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 2)
222;
223; caught WARNING:
224; undefined variable: FL
225
226;
227; caught WARNING:
228; These variables are undefined:
229; CFL FL
230;
231; compilation unit finished
232; caught 3 WARNING conditions
233:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
234------------------- CASE 1 -------------------
235Condition:
236 Green list: [ ]
237 Red list: [ A * C^2 + B * C^2, A^2 + B ]
238 Basis: [ (A^2 + B) * X^2 * Y + (A^3 * B + A^3 * C) * X * Y, (A * C^2 + B * C^2) * X^2 + (B) * Y + (4) ]
239------------------- CASE 2 -------------------
240Condition:
241 Green list: [ A^2 + B ]
242 Red list: [ A * C^2 + B * C^2, A^3 * B + A^3 * C ]
243 Basis: [ (A^3 * B + A^3 * C) * X * Y, (A * C^2 + B * C^2) * X^2 + (B) * Y + (4) ]
244------------------- CASE 3 -------------------
245Condition:
246 Green list: [ B + C, A^2 - C ]
247 Red list: [ A * C^2 + B * C^2 ]
248 Basis: [ (A * C^2 + B * C^2) * X^2 + (B) * Y + (4) ]
249------------------- CASE 4 -------------------
250Condition:
251 Green list: [ A * C^2 + B * C^2 ]
252 Red list: [ B, A^2 + B ]
253 Basis: [ (A^2 + B) * X^2 * Y + (A^3 * B + A^3 * C) * X * Y, (B) * Y + (4) ]
254------------------- CASE 5 -------------------
255Condition:
256 Green list: [ A^2 + B, B * C^2 + C^2, A * C^2 - C^2 ]
257 Red list: [ B, A^3 * B + A^3 * C ]
258 Basis: [ (A^3 * B + A^3 * C) * X * Y, (B) * Y + (4) ]
259------------------- CASE 6 -------------------
260Condition:
261 Green list: [ C - 1, B + 1, A - 1 ]
262 Red list: [ B ]
263 Basis: [ (B) * Y + (4) ]
264------------------- CASE 7 -------------------
265Condition:
266 Green list: [ B, C^2 ]
267 Red list: [ 4, A^2 + B ]
268 Basis: [ (A^2 + B) * X^2 * Y + (A^3 * B + A^3 * C) * X * Y, (4) ]
269------------------- CASE 8 -------------------
270Condition:
271 Green list: [ B, A * C^2, A^2 ]
272 Red list: [ 4 ]
273 Basis: [ (4) ]
274WARNING: Test 8
275
276; in: LAMBDA NIL
277; (SETF CGB-LISP::FL
278; (CDR
279; (PARSE:PARSE-STRING-TO-SORTED-ALIST "[a^2*x+5*a]"
280; '(CGB-LISP::X CGB-LISP::A))))
281; ==>
282; (SETQ CGB-LISP::FL
283; (CDR
284; (PARSE:PARSE-STRING-TO-SORTED-ALIST "[a^2*x+5*a]"
285; '(CGB-LISP::X CGB-LISP::A))))
286;
287; caught WARNING:
288; undefined variable: FL
289
290;
291; caught WARNING:
292; This variable is undefined:
293; FL
294;
295; compilation unit finished
296; caught 2 WARNING conditions
297
298; in: LAMBDA NIL
299; (SETF CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 1))
300; ==>
301; (SETQ CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 1))
302;
303; caught WARNING:
304; undefined variable: CFL
305
306; (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 1)
307;
308; caught WARNING:
309; undefined variable: FL
310
311;
312; caught WARNING:
313; These variables are undefined:
314; CFL FL
315;
316; compilation unit finished
317; caught 3 WARNING conditions
318
319------------------- CASE 1 -------------------
320Condition:
321 Green list: [ ]
322 Red list: [ A^2 ]
323 Basis: [ (A^2) * X + (5 * A) ]
324------------------- CASE 2 -------------------
325Condition:
326 Green list: [ A^2 ]
327 Red list: [ ]
328 Basis: [ ]
329WARNING: Test 9 - the discriminant of a quadratic polynomial
330:B2:B2:B2:B2:B2:B2
331------------------- CASE 1 -------------------
332Condition:
333 Green list: [ ]
334 Red list: [ A, 4 * A * C - B^2 ]
335 Basis: [ (4 * A * C - B^2) ]
336------------------- CASE 2 -------------------
337Condition:
338 Green list: [ 4 * A * C - B^2 ]
339 Red list: [ A ]
340 Basis: [ (2 * A) * X + (B) ]
341WARNING: Test 10 - the discriminant of a cubic polynomial
342:B2:B2:B2:B2:B2:B2
343------------------- CASE 1 -------------------
344Condition:
345 Green list: [ ]
346 Red list: [ P, 4 * P^3 + 27 * Q^2 ]
347 Basis: [ ( - 4 * P^3 - 27 * Q^2) ]
348------------------- CASE 2 -------------------
349Condition:
350 Green list: [ 4 * P^3 + 27 * Q^2 ]
351 Red list: [ P ]
352 Basis: [ (2 * P) * X + (3 * Q) ]
353------------------- CASE 3 -------------------
354Condition:
355 Green list: [ P ]
356 Red list: [ Q ]
357 Basis: [ (3 * Q) ]
358------------------- CASE 4 -------------------
359Condition:
360 Green list: [ P, Q ]
361 Red list: [ ]
362 Basis: [ (3) * X^2 + (0) ]
363WARNING: Test 11 - the discriminant of a quartic polynomial
364:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
365------------------- CASE 1 -------------------
366Condition:
367 Green list: [ ]
368 Red list: [ 16 * P^4 * R - 4 * P^3 * Q^2 - 128 * P^2 * R^2 + 144 * P * Q^2 * R - 27 * Q^4 + 256 * R^3, P, 2 * P^3 - 8 * P * R + 9 * Q^2 ]
369 Basis: [ (16 * P^6 * R - 4 * P^5 * Q^2 - 128 * P^4 * R^2 + 144 * P^3 * Q^2 * R - 27 * P^2 * Q^4 + 256 * P^2 * R^3) ]
370------------------- CASE 2 -------------------
371Condition:
372 Green list: [ 16 * P^4 * R - 4 * P^3 * Q^2 - 128 * P^2 * R^2 + 144 * P * Q^2 * R - 27 * Q^4 + 256 * R^3 ]
373 Red list: [ P, 2 * P^3 - 8 * P * R + 9 * Q^2 ]
374 Basis: [ ( - 2 * P^3 + 8 * P * R - 9 * Q^2) * X + ( - P^2 * Q - 12 * Q * R) ]
375------------------- CASE 3 -------------------
376Condition:
377 Green list: [ 2 * P^3 - 8 * P * R + 9 * Q^2 ]
378 Red list: [ P, P^2 * Q + 12 * Q * R ]
379 Basis: [ ( - P^2 * Q - 12 * Q * R) ]
380------------------- CASE 4 -------------------
381Condition:
382 Green list: [ 2 * P^3 - 8 * P * R + 9 * Q^2, P^2 * Q + 12 * Q * R, 32 * P * Q * R - 9 * Q^3, 3 * P * Q^3 + 128 * Q * R^2, 27 * Q^5 + 4096 * Q * R^3, 8 * P^2 * R - 3 * P * Q^2 - 32 * R^2 ]
383 Red list: [ P ]
384 Basis: [ (2 * P) * X^2 + (3 * Q) * X + (4 * R) ]
385------------------- CASE 5 -------------------
386Condition:
387 Green list: [ P ]
388 Red list: [ Q, 72 * P * Q^2 * R - 27 * Q^4 + 256 * R^3 ]
389 Basis: [ (27 * Q^4 - 256 * R^3) ]
390------------------- CASE 6 -------------------
391Condition:
392 Green list: [ P, 27 * Q^4 - 256 * R^3 ]
393 Red list: [ Q ]
394 Basis: [ (3 * Q) * X + (4 * R) ]
395------------------- CASE 7 -------------------
396Condition:
397 Green list: [ P, Q ]
398 Red list: [ R ]
399 Basis: [ (4 * R) ]
400------------------- CASE 8 -------------------
401Condition:
402 Green list: [ P, Q, R ]
403 Red list: [ ]
404 Basis: [ (4) * X^3 + (0) * X + (0) ]WARNING: Test 1
405
406------------------- CASE 1 -------------------
407Condition:
408 Green list: [ ]
409 Red list: [ ]
410 Basis: [ (4) * X + (5) * Y, ( - 10) * Y^2 ]
411WARNING: Test 2 - Enneper
412
413------------------- CASE 1 -------------------
414Condition:
415 Green list: [ ]
416 Red list: [ ]
417 Basis: [ ( - 3) * U^2 + (3) * V^2 + (1) * Z, (2) * V^3 + (1) * V * Z + (3) * V + ( - 1) * Y, ( - 6) * U * V^2 + (1) * U * Z + ( - 9) * U + (3) * X, (4) * U * V * Z + ( - 3) * U * Y + (3) * V * X, (9) * U * V * Y + ( - 2) * U * Z^2 + (18) * U * Z + ( - 9) * V^2 * X + ( - 6) * X * Z, ( - 27) * U * Y^2 + (8) * U * Z^3 + ( - 72) * U * Z^2 + (36) * V^2 * X * Z + (27) * V * X * Y + (24) * X * Z^2, (34992) * V^2 * X^2 + ( - 34992) * V^2 * Y^2 + ( - 186624) * V^2 * Z + ( - 15552) * V * Y * Z^2 + (46656) * V * Y * Z + (15552) * X^2 * Z + (93312) * X^2 + (19440) * Y^2 * Z + ( - 93312) * Y^2 + ( - 576) * Z^4 + (6912) * Z^3 + (15552) * Z^2 + ( - 279936) * Z, (139968) * U * X + (93312) * V^2 * Z + ( - 139968) * V * Y + (15552) * Z^2 + ( - 139968) * Z, (105815808) * V^2 * Y * Z + (52907904) * V * X^2 + ( - 52907904) * V * Y^2 + (15676416) * V * Z^3 + (141087744) * V * Z^2 + ( - 17635968) * Y * Z^2 + ( - 52907904) * Y * Z, (31104) * V^2 * Z^2 + (93312) * V^2 * Z + ( - 93312) * V * Y * Z + ( - 46656) * X^2 + (46656) * Y^2 + (1728) * Z^3 + ( - 31104) * Z^2 + (139968) * Z, (8817984) * V * X^2 * Z + (26453952) * V * X^2 + (44089920) * V * Y^2 * Z + ( - 26453952) * V * Y^2 + (2612736) * V * Z^4 + (31352832) * V * Z^3 + (70543872) * V * Z^2 + (26453952) * X^2 * Y + ( - 26453952) * Y^3 + ( - 3919104) * Y * Z^3 + ( - 105815808) * Y * Z, ( - 158723712) * V * X^2 * Y + ( - 317447424) * V * Y^3 * Z + (158723712) * V * Y^3 + ( - 23514624) * V * Y * Z^4 + ( - 188116992) * V * Y * Z^3 + ( - 634894848) * V * Y * Z^2 + (26453952) * X^4 + ( - 211631616) * X^2 * Y^2 + (6858432) * X^2 * Z^3 + (88179840) * X^2 * Z^2 + ( - 79361856) * X^2 * Z + (185177664) * Y^4 + (34292160) * Y^2 * Z^3 + ( - 35271936) * Y^2 * Z^2 + (714256704) * Y^2 * Z + ( - 290304) * Z^6 + (2612736) * Z^5 + (23514624) * Z^4 + ( - 211631616) * Z^3, ( - 317447424) * V * Y^3 * Z^2 + ( - 23514624) * V * Y * Z^5 + ( - 211631616) * V * Y * Z^4 + ( - 634894848) * V * Y * Z^3 + ( - 634894848) * V * Y * Z^2 + (26453952) * X^4 * Z + (79361856) * X^4 + ( - 211631616) * X^2 * Y^2 * Z + ( - 158723712) * X^2 * Y^2 + (6858432) * X^2 * Z^4 + (108755136) * X^2 * Z^3 + (185177664) * X^2 * Z^2 + ( - 238085568) * X^2 * Z + (185177664) * Y^4 * Z + (79361856) * Y^4 + (34292160) * Y^2 * Z^4 + ( - 2939328) * Y^2 * Z^3 + (608440896) * Y^2 * Z^2 + (238085568) * Y^2 * Z + ( - 290304) * Z^7 + (1741824) * Z^6 + (31352832) * Z^5 + ( - 141087744) * Z^4 + ( - 634894848) * Z^3, (79361856) * V * X^4 + (2539579392) * V * X^2 + (317447424) * V * Y^4 * Z + ( - 79361856) * V * Y^4 + (23514624) * V * Y^2 * Z^4 + (117573120) * V * Y^2 * Z^3 + ( - 423263232) * V * Y^2 * Z^2 + (5079158784) * V * Y^2 * Z + ( - 2539579392) * V * Y^2 + ( - 6967296) * V * Z^6 + ( - 125411328) * V * Z^5 + ( - 564350976) * V * Z^4 + (752467968) * V * Z^3 + (6772211712) * V * Z^2 + ( - 26453952) * X^4 * Y + (211631616) * X^2 * Y^3 + ( - 6858432) * X^2 * Y * Z^3 + ( - 255721536) * X^2 * Y * Z^2 + ( - 846526464) * X^2 * Y * Z + (2539579392) * X^2 * Y + ( - 185177664) * Y^5 + ( - 34292160) * Y^3 * Z^3 + (44089920) * Y^3 * Z^2 + (211631616) * Y^3 * Z + ( - 2539579392) * Y^3 + (290304) * Y * Z^6 + (10450944) * Y * Z^5 + (7838208) * Y * Z^4 + (188116992) * Y * Z^3 + (3386105856) * Y * Z^2 + ( - 10158317568) * Y * Z, ( - 714256704) * X^6 + (2142770112) * X^4 * Y^2 + ( - 396809280) * X^4 * Z^3 + ( - 4285540224) * X^4 * Z^2 + (2142770112) * X^4 * Z + ( - 2142770112) * X^2 * Y^4 + ( - 2063408256) * X^2 * Y^2 * Z^3 + ( - 4285540224) * X^2 * Y^2 * Z + ( - 47029248) * X^2 * Z^6 + ( - 1269789696) * X^2 * Z^5 + ( - 6348948480) * X^2 * Z^4 + (11428107264) * X^2 * Z^3 + (714256704) * Y^6 + ( - 396809280) * Y^4 * Z^3 + (4285540224) * Y^4 * Z^2 + (2142770112) * Y^4 * Z + (47029248) * Y^2 * Z^6 + ( - 1269789696) * Y^2 * Z^5 + (6348948480) * Y^2 * Z^4 + (11428107264) * Y^2 * Z^3 + (2322432) * Z^9 + ( - 376233984) * Z^7 + (15237476352) * Z^5 ]:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
418Args:[ U^3 - 3 * U * V^2 - 3 * U + X, - 3 * U^2 * V + V^3 - 3 * V + Y, - 3 * U^2 + 3 * V^2 + Z ]:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2[ 3 * U^2 - 3 * V^2 - Z, 6 * U * V^2 - U * Z + 9 * U - 3 * X, 2 * V^3 + V * Z + 3 * V - Y, 4 * U * V * Z - 3 * U * Y + 3 * V * X, 9 * U * X + 6 * V^2 * Z - 9 * V * Y + Z^2 - 9 * Z, 9 * U * V * Y - 2 * U * Z^2 + 18 * U * Z - 9 * V^2 * X - 6 * X * Z, 27 * U * Y^2 - 8 * U * Z^3 + 72 * U * Z^2 - 36 * V^2 * X * Z - 27 * V * X * Y - 24 * X * Z^2, 18 * V^2 * Z^2 + 54 * V^2 * Z - 54 * V * Y * Z - 27 * X^2 + 27 * Y^2 + Z^3 - 18 * Z^2 + 81 * Z, 243 * V^2 * X^2 - 243 * V^2 * Y^2 - 1296 * V^2 * Z - 108 * V * Y * Z^2 + 324 * V * Y * Z + 108 * X^2 * Z + 648 * X^2 + 135 * Y^2 * Z - 648 * Y^2 - 4 * Z^4 + 48 * Z^3 + 108 * Z^2 - 1944 * Z, 54 * V^2 * Y * Z + 27 * V * X^2 - 27 * V * Y^2 + 8 * V * Z^3 + 72 * V * Z^2 - 9 * Y * Z^2 - 27 * Y * Z, 27 * V * X^2 * Z + 81 * V * X^2 + 135 * V * Y^2 * Z - 81 * V * Y^2 + 8 * V * Z^4 + 96 * V * Z^3 + 216 * V * Z^2 + 81 * X^2 * Y - 81 * Y^3 - 12 * Y * Z^3 - 324 * Y * Z, 4374 * V * X^2 * Y + 8748 * V * Y^3 * Z - 4374 * V * Y^3 + 648 * V * Y * Z^4 + 5184 * V * Y * Z^3 + 17496 * V * Y * Z^2 - 729 * X^4 + 5832 * X^2 * Y^2 - 189 * X^2 * Z^3 - 2430 * X^2 * Z^2 + 2187 * X^2 * Z - 5103 * Y^4 - 945 * Y^2 * Z^3 + 972 * Y^2 * Z^2 - 19683 * Y^2 * Z + 8 * Z^6 - 72 * Z^5 - 648 * Z^4 + 5832 * Z^3, 8748 * V * Y^3 * Z^2 + 648 * V * Y * Z^5 + 5832 * V * Y * Z^4 + 17496 * V * Y * Z^3 + 17496 * V * Y * Z^2 - 729 * X^4 * Z - 2187 * X^4 + 5832 * X^2 * Y^2 * Z + 4374 * X^2 * Y^2 - 189 * X^2 * Z^4 - 2997 * X^2 * Z^3 - 5103 * X^2 * Z^2 + 6561 * X^2 * Z - 5103 * Y^4 * Z - 2187 * Y^4 - 945 * Y^2 * Z^4 + 81 * Y^2 * Z^3 - 16767 * Y^2 * Z^2 - 6561 * Y^2 * Z + 8 * Z^7 - 48 * Z^6 - 864 * Z^5 + 3888 * Z^4 + 17496 * Z^3, 19683 * X^6 - 59049 * X^4 * Y^2 + 10935 * X^4 * Z^3 + 118098 * X^4 * Z^2 - 59049 * X^4 * Z + 59049 * X^2 * Y^4 + 56862 * X^2 * Y^2 * Z^3 + 118098 * X^2 * Y^2 * Z + 1296 * X^2 * Z^6 + 34992 * X^2 * Z^5 + 174960 * X^2 * Z^4 - 314928 * X^2 * Z^3 - 19683 * Y^6 + 10935 * Y^4 * Z^3 - 118098 * Y^4 * Z^2 - 59049 * Y^4 * Z - 1296 * Y^2 * Z^6 + 34992 * Y^2 * Z^5 - 174960 * Y^2 * Z^4 - 314928 * Y^2 * Z^3 - 64 * Z^9 + 10368 * Z^7 - 419904 * Z^5, 2187 * V * X^4 + 69984 * V * X^2 + 8748 * V * Y^4 * Z - 2187 * V * Y^4 + 648 * V * Y^2 * Z^4 + 3240 * V * Y^2 * Z^3 - 11664 * V * Y^2 * Z^2 + 139968 * V * Y^2 * Z - 69984 * V * Y^2 - 192 * V * Z^6 - 3456 * V * Z^5 - 15552 * V * Z^4 + 20736 * V * Z^3 + 186624 * V * Z^2 - 729 * X^4 * Y + 5832 * X^2 * Y^3 - 189 * X^2 * Y * Z^3 - 7047 * X^2 * Y * Z^2 - 23328 * X^2 * Y * Z + 69984 * X^2 * Y - 5103 * Y^5 - 945 * Y^3 * Z^3 + 1215 * Y^3 * Z^2 + 5832 * Y^3 * Z - 69984 * Y^3 + 8 * Y * Z^6 + 288 * Y * Z^5 + 216 * Y * Z^4 + 5184 * Y * Z^3 + 93312 * Y * Z^2 - 279936 * Y * Z ]
419WARNING: Test 3 - staple
420:B2:B2:B2
421------------------- CASE 1 -------------------
422Condition:
423 Green list: [ ]
424 Red list: [ U - 1 ]
425 Basis: [ (U - 1) * X, ( - U + 1) * Y ]
426------------------- CASE 2 -------------------
427Condition:
428 Green list: [ U - 1 ]
429 Red list: [ ]
430 Basis: [ (1) * X + (1) * Y ]
431WARNING: Test 4 - staple
432:B2:B2:B2
433------------------- CASE 1 -------------------
434Condition:
435 Green list: [ U ]
436 Red list: [ ]
437 Basis: [ (1) * X, (1) * Y ]
438------------------- CASE 2 -------------------
439Condition:
440 Green list: [ ]
441 Red list: [ U, U - 1 ]
442 Basis: [ (U^2 - U) * X, (U - 1) * Y ]
443------------------- CASE 3 -------------------
444Condition:
445 Green list: [ U - 1 ]
446 Red list: [ U ]
447 Basis: [ (1) * X + (1) * Y ]
448WARNING: Test 5 - a small robot example
449:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
450------------------- CASE 1 -------------------
451Condition:
452 Green list: [ ]
453 Red list: [ L3, A^2 + B^2, L2, A ]
454 Basis: [ ( - 2 * A * L2 * L3) * S2 + ( - 2 * A^2 * L2 - 2 * B^2 * L2) * S1 + (A^2 * B + B^3 + B * L2^2 - B * L3^2), ( - 2 * L2 * L3) * C2 + (A^2 + B^2 - L2^2 - L3^2), ( - 2 * A * L2) * C1 + ( - 2 * B * L2) * S1 + (A^2 + B^2 + L2^2 - L3^2), (4 * A^2 * L2^2 + 4 * B^2 * L2^2) * S1^2 + ( - 4 * A^2 * B * L2 - 4 * B^3 * L2 - 4 * B * L2^3 + 4 * B * L2 * L3^2) * S1 + (A^4 + 2 * A^2 * B^2 - 2 * A^2 * L2^2 - 2 * A^2 * L3^2 + B^4 + 2 * B^2 * L2^2 - 2 * B^2 * L3^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4) ]
455------------------- CASE 2 -------------------
456Condition:
457 Green list: [ A^2 + B^2 ]
458 Red list: [ L3, A^2 * B + B^3 + B * L2^2 - B * L3^2, L2, A ]
459 Basis: [ (4 * A * B * L2^3 * L3 - 4 * A * B * L2 * L3^3) * S2 + ( - 2 * B^2 * L2^4 + 4 * B^2 * L2^2 * L3^2 - 2 * B^2 * L3^4), ( - 2 * L2 * L3) * C2 + ( - L2^2 - L3^2), (4 * A * L2^3 - 4 * A * L2 * L3^2) * C1 + (4 * B^2 * L2^2 - L2^4 + 2 * L2^2 * L3^2 - L3^4), ( - 4 * B * L2^3 + 4 * B * L2 * L3^2) * S1 + (4 * B^2 * L2^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4) ]
460------------------- CASE 3 -------------------
461Condition:
462 Green list: [ A^2 + B^2, L2^2 - L3^2 ]
463 Red list: [ L3, A, L2, A^4 + 2 * A^2 * B^2 - 2 * A^2 * L2^2 - 2 * A^2 * L3^2 + B^4 + 2 * B^2 * L2^2 - 2 * B^2 * L3^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4 ]
464 Basis: [ (4 * B^2 * L3^2) ]
465------------------- CASE 4 -------------------
466Condition:
467 Green list: [ A ]
468 Red list: [ L3, B, L2 ]
469 Basis: [ (4 * B^2 * L2^2) * C1^2 + (B^4 - 2 * B^2 * L2^2 - 2 * B^2 * L3^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4), (2 * B * L2 * L3) * S2 + ( - 2 * B^2 * L2) * C1 + (0), ( - 2 * L2 * L3) * C2 + (0) * C1 + (B^2 - L2^2 - L3^2), ( - 2 * B * L2) * S1 + (B^2 + L2^2 - L3^2) ]
470------------------- CASE 5 -------------------
471Condition:
472 Green list: [ A, B ]
473 Red list: [ L3, L2, A^2 + B^2 + L2^2 - L3^2 ]
474 Basis: [ (L2^2 - L3^2) ]
475------------------- CASE 6 -------------------
476Condition:
477 Green list: [ A, B, L2^2 - L3^2 ]
478 Red list: [ L3, L2 ]
479 Basis: [ (1) * C1^2 + (1) * S1^2 + ( - 1), (L3) * S2 + (0) * C1 + (0) * S1, (L3) * C2 + (0) * C1 + (0) * S1 + (L2) ]
480WARNING: Test 6 - Circle of Apollonius
481:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
482------------------- CASE 1 -------------------
483Condition:
484 Green list: [ U2, U1 ]
485 Red list: [ ]
486 Basis: [ (2) * X1 + (0), (2) * X2 + (0), (2) * X3 + (0), (2) * X4 + (0), ( - 4) * X6^2 + (8) * X6 * X8 + (0) * X8 + (0), (4) * S * X5^2 + ( - 8) * S * X5 * X7 + (0) * S * X7 + (0) * S * X8 + (0) * S + ( - 4) ]
487------------------- CASE 2 -------------------
488Condition:
489 Green list: [ U2 ]
490 Red list: [ U1 ]
491 Basis: [ ( - 4 * U1^3) ]
492------------------- CASE 3 -------------------
493Condition:
494 Green list: [ U1 ]
495 Red list: [ U2 ]
496 Basis: [ (4 * U2^2) ]
497------------------- CASE 4 -------------------
498Condition:
499 Green list: [ ]
500 Red list: [ U1, U2, U1^2 - U2^2, U1^2 + U2^2 ]
501 Basis: [ (2) * X1 + ( - U1), (2) * X2 + ( - U2), (2) * X3 + ( - U1), (2) * X4 + ( - U2), (U1^2 * U2 + U2^3) * X5 + ( - U1 * U2^3), ( - U1^2 - U2^2) * X6 + (U1^2 * U2), ( - 4 * U1^5 + 4 * U1 * U2^4) * X7 + (U1^6 + 2 * U1^4 * U2^2 - 3 * U1^2 * U2^4), ( - 4 * U1^4 * U2 + 4 * U2^5) * X8 + (3 * U1^4 * U2^2 - 2 * U1^2 * U2^4 - U2^6), (2 * U1^6 * U2^2 - 2 * U1^4 * U2^4) * S + (4 * U1^6 - 4 * U1^2 * U2^4) ]
502------------------- CASE 5 -------------------
503Condition:
504 Green list: [ U1^2 - U2^2 ]
505 Red list: [ U1, U1^2 + U2^2, U2 ]
506 Basis: [ (2) * X1 + ( - U1), (2) * X2 + ( - U2), (2) * X3 + ( - U1), (2) * X4 + ( - U2), (2 * U2^3) * X5 + ( - U1 * U2^3), ( - 2 * U2^2) * X6 + (U2^3), (4 * U1) * X7 + ( - 4 * U2) * X8 + (0), ( - 8 * U2^5) * S * X8 + (2 * U2^6) * S + ( - 8 * U2^4) ]
507------------------- CASE 6 -------------------
508Condition:
509 Green list: [ U1^2 + U2^2 ]
510 Red list: [ U1, U2 ]
511 Basis: [ ( - U2^3) ]
512WARNING: Test 7
513
514; in: LAMBDA NIL
515; (SETF CGB-LISP::FL
516; (CDR
517; (PARSE:PARSE-STRING-TO-SORTED-ALIST
518; "[a^2*x^2*y+b*x^2*y+a^3*b*x*y+a^3*c*x*y,c^2*a*x^2+c^2*b*x^2+b*y+4]"
519; '(CGB-LISP::X CGB-LISP::Y CGB-LISP::A CGB-LISP::B CGB-LISP::C))))
520; ==>
521; (SETQ CGB-LISP::FL
522; (CDR
523; (PARSE:PARSE-STRING-TO-SORTED-ALIST
524; "[a^2*x^2*y+b*x^2*y+a^3*b*x*y+a^3*c*x*y,c^2*a*x^2+c^2*b*x^2+b*y+4]"
525; '(CGB-LISP::X CGB-LISP::Y CGB-LISP::A CGB-LISP::B CGB-LISP::C))))
526;
527; caught WARNING:
528; undefined variable: FL
529
530;
531; caught WARNING:
532; This variable is undefined:
533; FL
534;
535; compilation unit finished
536; caught 2 WARNING conditions
537
538; in: LAMBDA NIL
539; (SETF CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 2))
540; ==>
541; (SETQ CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 2))
542;
543; caught WARNING:
544; undefined variable: CFL
545
546; (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 2)
547;
548; caught WARNING:
549; undefined variable: FL
550
551;
552; caught WARNING:
553; These variables are undefined:
554; CFL FL
555;
556; compilation unit finished
557; caught 3 WARNING conditions
558:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
559------------------- CASE 1 -------------------
560Condition:
561 Green list: [ ]
562 Red list: [ A * C^2 + B * C^2, A^2 + B ]
563 Basis: [ (A^2 + B) * X^2 * Y + (A^3 * B + A^3 * C) * X * Y, (A * C^2 + B * C^2) * X^2 + (B) * Y + (4) ]
564------------------- CASE 2 -------------------
565Condition:
566 Green list: [ A^2 + B ]
567 Red list: [ A * C^2 + B * C^2, A^3 * B + A^3 * C ]
568 Basis: [ (A^3 * B + A^3 * C) * X * Y, (A * C^2 + B * C^2) * X^2 + (B) * Y + (4) ]
569------------------- CASE 3 -------------------
570Condition:
571 Green list: [ B + C, A^2 - C ]
572 Red list: [ A * C^2 + B * C^2 ]
573 Basis: [ (A * C^2 + B * C^2) * X^2 + (B) * Y + (4) ]
574------------------- CASE 4 -------------------
575Condition:
576 Green list: [ A * C^2 + B * C^2 ]
577 Red list: [ B, A^2 + B ]
578 Basis: [ (A^2 + B) * X^2 * Y + (A^3 * B + A^3 * C) * X * Y, (B) * Y + (4) ]
579------------------- CASE 5 -------------------
580Condition:
581 Green list: [ A^2 + B, B * C^2 + C^2, A * C^2 - C^2 ]
582 Red list: [ B, A^3 * B + A^3 * C ]
583 Basis: [ (A^3 * B + A^3 * C) * X * Y, (B) * Y + (4) ]
584------------------- CASE 6 -------------------
585Condition:
586 Green list: [ C - 1, B + 1, A - 1 ]
587 Red list: [ B ]
588 Basis: [ (B) * Y + (4) ]
589------------------- CASE 7 -------------------
590Condition:
591 Green list: [ B, C^2 ]
592 Red list: [ 4, A^2 + B ]
593 Basis: [ (A^2 + B) * X^2 * Y + (A^3 * B + A^3 * C) * X * Y, (4) ]
594------------------- CASE 8 -------------------
595Condition:
596 Green list: [ B, A * C^2, A^2 ]
597 Red list: [ 4 ]
598 Basis: [ (4) ]
599WARNING: Test 8
600
601; in: LAMBDA NIL
602; (SETF CGB-LISP::FL
603; (CDR
604; (PARSE:PARSE-STRING-TO-SORTED-ALIST "[a^2*x+5*a]"
605; '(CGB-LISP::X CGB-LISP::A))))
606; ==>
607; (SETQ CGB-LISP::FL
608; (CDR
609; (PARSE:PARSE-STRING-TO-SORTED-ALIST "[a^2*x+5*a]"
610; '(CGB-LISP::X CGB-LISP::A))))
611;
612; caught WARNING:
613; undefined variable: FL
614
615;
616; caught WARNING:
617; This variable is undefined:
618; FL
619;
620; compilation unit finished
621; caught 2 WARNING conditions
622
623; in: LAMBDA NIL
624; (SETF CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 1))
625; ==>
626; (SETQ CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 1))
627;
628; caught WARNING:
629; undefined variable: CFL
630
631; (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 1)
632;
633; caught WARNING:
634; undefined variable: FL
635
636;
637; caught WARNING:
638; These variables are undefined:
639; CFL FL
640;
641; compilation unit finished
642; caught 3 WARNING conditions
643
644------------------- CASE 1 -------------------
645Condition:
646 Green list: [ ]
647 Red list: [ A^2 ]
648 Basis: [ (A^2) * X + (5 * A) ]
649------------------- CASE 2 -------------------
650Condition:
651 Green list: [ A^2 ]
652 Red list: [ ]
653 Basis: [ ]
654WARNING: Test 9 - the discriminant of a quadratic polynomial
655:B2:B2:B2:B2:B2:B2
656------------------- CASE 1 -------------------
657Condition:
658 Green list: [ ]
659 Red list: [ A, 4 * A * C - B^2 ]
660 Basis: [ (4 * A * C - B^2) ]
661------------------- CASE 2 -------------------
662Condition:
663 Green list: [ 4 * A * C - B^2 ]
664 Red list: [ A ]
665 Basis: [ (2 * A) * X + (B) ]
666WARNING: Test 10 - the discriminant of a cubic polynomial
667:B2:B2:B2:B2:B2:B2
668------------------- CASE 1 -------------------
669Condition:
670 Green list: [ ]
671 Red list: [ P, 4 * P^3 + 27 * Q^2 ]
672 Basis: [ ( - 4 * P^3 - 27 * Q^2) ]
673------------------- CASE 2 -------------------
674Condition:
675 Green list: [ 4 * P^3 + 27 * Q^2 ]
676 Red list: [ P ]
677 Basis: [ (2 * P) * X + (3 * Q) ]
678------------------- CASE 3 -------------------
679Condition:
680 Green list: [ P ]
681 Red list: [ Q ]
682 Basis: [ (3 * Q) ]
683------------------- CASE 4 -------------------
684Condition:
685 Green list: [ P, Q ]
686 Red list: [ ]
687 Basis: [ (3) * X^2 + (0) ]
688WARNING: Test 11 - the discriminant of a quartic polynomial
689:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
690------------------- CASE 1 -------------------
691Condition:
692 Green list: [ ]
693 Red list: [ 16 * P^4 * R - 4 * P^3 * Q^2 - 128 * P^2 * R^2 + 144 * P * Q^2 * R - 27 * Q^4 + 256 * R^3, P, 2 * P^3 - 8 * P * R + 9 * Q^2 ]
694 Basis: [ (16 * P^6 * R - 4 * P^5 * Q^2 - 128 * P^4 * R^2 + 144 * P^3 * Q^2 * R - 27 * P^2 * Q^4 + 256 * P^2 * R^3) ]
695------------------- CASE 2 -------------------
696Condition:
697 Green list: [ 16 * P^4 * R - 4 * P^3 * Q^2 - 128 * P^2 * R^2 + 144 * P * Q^2 * R - 27 * Q^4 + 256 * R^3 ]
698 Red list: [ P, 2 * P^3 - 8 * P * R + 9 * Q^2 ]
699 Basis: [ ( - 2 * P^3 + 8 * P * R - 9 * Q^2) * X + ( - P^2 * Q - 12 * Q * R) ]
700------------------- CASE 3 -------------------
701Condition:
702 Green list: [ 2 * P^3 - 8 * P * R + 9 * Q^2 ]
703 Red list: [ P, P^2 * Q + 12 * Q * R ]
704 Basis: [ ( - P^2 * Q - 12 * Q * R) ]
705------------------- CASE 4 -------------------
706Condition:
707 Green list: [ 2 * P^3 - 8 * P * R + 9 * Q^2, P^2 * Q + 12 * Q * R, 32 * P * Q * R - 9 * Q^3, 3 * P * Q^3 + 128 * Q * R^2, 27 * Q^5 + 4096 * Q * R^3, 8 * P^2 * R - 3 * P * Q^2 - 32 * R^2 ]
708 Red list: [ P ]
709 Basis: [ (2 * P) * X^2 + (3 * Q) * X + (4 * R) ]
710------------------- CASE 5 -------------------
711Condition:
712 Green list: [ P ]
713 Red list: [ Q, 72 * P * Q^2 * R - 27 * Q^4 + 256 * R^3 ]
714 Basis: [ (27 * Q^4 - 256 * R^3) ]
715------------------- CASE 6 -------------------
716Condition:
717 Green list: [ P, 27 * Q^4 - 256 * R^3 ]
718 Red list: [ Q ]
719 Basis: [ (3 * Q) * X + (4 * R) ]
720------------------- CASE 7 -------------------
721Condition:
722 Green list: [ P, Q ]
723 Red list: [ R ]
724 Basis: [ (4 * R) ]
725------------------- CASE 8 -------------------
726Condition:
727 Green list: [ P, Q, R ]
728 Red list: [ ]
729 Basis: [ (4) * X^3 + (0) * X + (0) ]WARNING: Test 1
730
731------------------- CASE 1 -------------------
732Condition:
733 Green list: [ ]
734 Red list: [ ]
735 Basis: [ (4) * X + (5) * Y, ( - 10) * Y^2 ]
736WARNING: Test 2 - Enneper
737
738------------------- CASE 1 -------------------
739Condition:
740 Green list: [ ]
741 Red list: [ ]
742 Basis: [ ( - 3) * U^2 + (3) * V^2 + (1) * Z, (2) * V^3 + (1) * V * Z + (3) * V + ( - 1) * Y, ( - 6) * U * V^2 + (1) * U * Z + ( - 9) * U + (3) * X, (4) * U * V * Z + ( - 3) * U * Y + (3) * V * X, (9) * U * V * Y + ( - 2) * U * Z^2 + (18) * U * Z + ( - 9) * V^2 * X + ( - 6) * X * Z, ( - 27) * U * Y^2 + (8) * U * Z^3 + ( - 72) * U * Z^2 + (36) * V^2 * X * Z + (27) * V * X * Y + (24) * X * Z^2, (34992) * V^2 * X^2 + ( - 34992) * V^2 * Y^2 + ( - 186624) * V^2 * Z + ( - 15552) * V * Y * Z^2 + (46656) * V * Y * Z + (15552) * X^2 * Z + (93312) * X^2 + (19440) * Y^2 * Z + ( - 93312) * Y^2 + ( - 576) * Z^4 + (6912) * Z^3 + (15552) * Z^2 + ( - 279936) * Z, (139968) * U * X + (93312) * V^2 * Z + ( - 139968) * V * Y + (15552) * Z^2 + ( - 139968) * Z, (105815808) * V^2 * Y * Z + (52907904) * V * X^2 + ( - 52907904) * V * Y^2 + (15676416) * V * Z^3 + (141087744) * V * Z^2 + ( - 17635968) * Y * Z^2 + ( - 52907904) * Y * Z, (31104) * V^2 * Z^2 + (93312) * V^2 * Z + ( - 93312) * V * Y * Z + ( - 46656) * X^2 + (46656) * Y^2 + (1728) * Z^3 + ( - 31104) * Z^2 + (139968) * Z, (8817984) * V * X^2 * Z + (26453952) * V * X^2 + (44089920) * V * Y^2 * Z + ( - 26453952) * V * Y^2 + (2612736) * V * Z^4 + (31352832) * V * Z^3 + (70543872) * V * Z^2 + (26453952) * X^2 * Y + ( - 26453952) * Y^3 + ( - 3919104) * Y * Z^3 + ( - 105815808) * Y * Z, ( - 158723712) * V * X^2 * Y + ( - 317447424) * V * Y^3 * Z + (158723712) * V * Y^3 + ( - 23514624) * V * Y * Z^4 + ( - 188116992) * V * Y * Z^3 + ( - 634894848) * V * Y * Z^2 + (26453952) * X^4 + ( - 211631616) * X^2 * Y^2 + (6858432) * X^2 * Z^3 + (88179840) * X^2 * Z^2 + ( - 79361856) * X^2 * Z + (185177664) * Y^4 + (34292160) * Y^2 * Z^3 + ( - 35271936) * Y^2 * Z^2 + (714256704) * Y^2 * Z + ( - 290304) * Z^6 + (2612736) * Z^5 + (23514624) * Z^4 + ( - 211631616) * Z^3, ( - 317447424) * V * Y^3 * Z^2 + ( - 23514624) * V * Y * Z^5 + ( - 211631616) * V * Y * Z^4 + ( - 634894848) * V * Y * Z^3 + ( - 634894848) * V * Y * Z^2 + (26453952) * X^4 * Z + (79361856) * X^4 + ( - 211631616) * X^2 * Y^2 * Z + ( - 158723712) * X^2 * Y^2 + (6858432) * X^2 * Z^4 + (108755136) * X^2 * Z^3 + (185177664) * X^2 * Z^2 + ( - 238085568) * X^2 * Z + (185177664) * Y^4 * Z + (79361856) * Y^4 + (34292160) * Y^2 * Z^4 + ( - 2939328) * Y^2 * Z^3 + (608440896) * Y^2 * Z^2 + (238085568) * Y^2 * Z + ( - 290304) * Z^7 + (1741824) * Z^6 + (31352832) * Z^5 + ( - 141087744) * Z^4 + ( - 634894848) * Z^3, (79361856) * V * X^4 + (2539579392) * V * X^2 + (317447424) * V * Y^4 * Z + ( - 79361856) * V * Y^4 + (23514624) * V * Y^2 * Z^4 + (117573120) * V * Y^2 * Z^3 + ( - 423263232) * V * Y^2 * Z^2 + (5079158784) * V * Y^2 * Z + ( - 2539579392) * V * Y^2 + ( - 6967296) * V * Z^6 + ( - 125411328) * V * Z^5 + ( - 564350976) * V * Z^4 + (752467968) * V * Z^3 + (6772211712) * V * Z^2 + ( - 26453952) * X^4 * Y + (211631616) * X^2 * Y^3 + ( - 6858432) * X^2 * Y * Z^3 + ( - 255721536) * X^2 * Y * Z^2 + ( - 846526464) * X^2 * Y * Z + (2539579392) * X^2 * Y + ( - 185177664) * Y^5 + ( - 34292160) * Y^3 * Z^3 + (44089920) * Y^3 * Z^2 + (211631616) * Y^3 * Z + ( - 2539579392) * Y^3 + (290304) * Y * Z^6 + (10450944) * Y * Z^5 + (7838208) * Y * Z^4 + (188116992) * Y * Z^3 + (3386105856) * Y * Z^2 + ( - 10158317568) * Y * Z, ( - 714256704) * X^6 + (2142770112) * X^4 * Y^2 + ( - 396809280) * X^4 * Z^3 + ( - 4285540224) * X^4 * Z^2 + (2142770112) * X^4 * Z + ( - 2142770112) * X^2 * Y^4 + ( - 2063408256) * X^2 * Y^2 * Z^3 + ( - 4285540224) * X^2 * Y^2 * Z + ( - 47029248) * X^2 * Z^6 + ( - 1269789696) * X^2 * Z^5 + ( - 6348948480) * X^2 * Z^4 + (11428107264) * X^2 * Z^3 + (714256704) * Y^6 + ( - 396809280) * Y^4 * Z^3 + (4285540224) * Y^4 * Z^2 + (2142770112) * Y^4 * Z + (47029248) * Y^2 * Z^6 + ( - 1269789696) * Y^2 * Z^5 + (6348948480) * Y^2 * Z^4 + (11428107264) * Y^2 * Z^3 + (2322432) * Z^9 + ( - 376233984) * Z^7 + (15237476352) * Z^5 ]:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
743Args:[ U^3 - 3 * U * V^2 - 3 * U + X, - 3 * U^2 * V + V^3 - 3 * V + Y, - 3 * U^2 + 3 * V^2 + Z ]:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2[ 3 * U^2 - 3 * V^2 - Z, 6 * U * V^2 - U * Z + 9 * U - 3 * X, 2 * V^3 + V * Z + 3 * V - Y, 4 * U * V * Z - 3 * U * Y + 3 * V * X, 9 * U * X + 6 * V^2 * Z - 9 * V * Y + Z^2 - 9 * Z, 9 * U * V * Y - 2 * U * Z^2 + 18 * U * Z - 9 * V^2 * X - 6 * X * Z, 27 * U * Y^2 - 8 * U * Z^3 + 72 * U * Z^2 - 36 * V^2 * X * Z - 27 * V * X * Y - 24 * X * Z^2, 18 * V^2 * Z^2 + 54 * V^2 * Z - 54 * V * Y * Z - 27 * X^2 + 27 * Y^2 + Z^3 - 18 * Z^2 + 81 * Z, 243 * V^2 * X^2 - 243 * V^2 * Y^2 - 1296 * V^2 * Z - 108 * V * Y * Z^2 + 324 * V * Y * Z + 108 * X^2 * Z + 648 * X^2 + 135 * Y^2 * Z - 648 * Y^2 - 4 * Z^4 + 48 * Z^3 + 108 * Z^2 - 1944 * Z, 54 * V^2 * Y * Z + 27 * V * X^2 - 27 * V * Y^2 + 8 * V * Z^3 + 72 * V * Z^2 - 9 * Y * Z^2 - 27 * Y * Z, 27 * V * X^2 * Z + 81 * V * X^2 + 135 * V * Y^2 * Z - 81 * V * Y^2 + 8 * V * Z^4 + 96 * V * Z^3 + 216 * V * Z^2 + 81 * X^2 * Y - 81 * Y^3 - 12 * Y * Z^3 - 324 * Y * Z, 4374 * V * X^2 * Y + 8748 * V * Y^3 * Z - 4374 * V * Y^3 + 648 * V * Y * Z^4 + 5184 * V * Y * Z^3 + 17496 * V * Y * Z^2 - 729 * X^4 + 5832 * X^2 * Y^2 - 189 * X^2 * Z^3 - 2430 * X^2 * Z^2 + 2187 * X^2 * Z - 5103 * Y^4 - 945 * Y^2 * Z^3 + 972 * Y^2 * Z^2 - 19683 * Y^2 * Z + 8 * Z^6 - 72 * Z^5 - 648 * Z^4 + 5832 * Z^3, 8748 * V * Y^3 * Z^2 + 648 * V * Y * Z^5 + 5832 * V * Y * Z^4 + 17496 * V * Y * Z^3 + 17496 * V * Y * Z^2 - 729 * X^4 * Z - 2187 * X^4 + 5832 * X^2 * Y^2 * Z + 4374 * X^2 * Y^2 - 189 * X^2 * Z^4 - 2997 * X^2 * Z^3 - 5103 * X^2 * Z^2 + 6561 * X^2 * Z - 5103 * Y^4 * Z - 2187 * Y^4 - 945 * Y^2 * Z^4 + 81 * Y^2 * Z^3 - 16767 * Y^2 * Z^2 - 6561 * Y^2 * Z + 8 * Z^7 - 48 * Z^6 - 864 * Z^5 + 3888 * Z^4 + 17496 * Z^3, 19683 * X^6 - 59049 * X^4 * Y^2 + 10935 * X^4 * Z^3 + 118098 * X^4 * Z^2 - 59049 * X^4 * Z + 59049 * X^2 * Y^4 + 56862 * X^2 * Y^2 * Z^3 + 118098 * X^2 * Y^2 * Z + 1296 * X^2 * Z^6 + 34992 * X^2 * Z^5 + 174960 * X^2 * Z^4 - 314928 * X^2 * Z^3 - 19683 * Y^6 + 10935 * Y^4 * Z^3 - 118098 * Y^4 * Z^2 - 59049 * Y^4 * Z - 1296 * Y^2 * Z^6 + 34992 * Y^2 * Z^5 - 174960 * Y^2 * Z^4 - 314928 * Y^2 * Z^3 - 64 * Z^9 + 10368 * Z^7 - 419904 * Z^5, 2187 * V * X^4 + 69984 * V * X^2 + 8748 * V * Y^4 * Z - 2187 * V * Y^4 + 648 * V * Y^2 * Z^4 + 3240 * V * Y^2 * Z^3 - 11664 * V * Y^2 * Z^2 + 139968 * V * Y^2 * Z - 69984 * V * Y^2 - 192 * V * Z^6 - 3456 * V * Z^5 - 15552 * V * Z^4 + 20736 * V * Z^3 + 186624 * V * Z^2 - 729 * X^4 * Y + 5832 * X^2 * Y^3 - 189 * X^2 * Y * Z^3 - 7047 * X^2 * Y * Z^2 - 23328 * X^2 * Y * Z + 69984 * X^2 * Y - 5103 * Y^5 - 945 * Y^3 * Z^3 + 1215 * Y^3 * Z^2 + 5832 * Y^3 * Z - 69984 * Y^3 + 8 * Y * Z^6 + 288 * Y * Z^5 + 216 * Y * Z^4 + 5184 * Y * Z^3 + 93312 * Y * Z^2 - 279936 * Y * Z ]
744WARNING: Test 3 - staple
745:B2:B2:B2
746------------------- CASE 1 -------------------
747Condition:
748 Green list: [ ]
749 Red list: [ U - 1 ]
750 Basis: [ (U - 1) * X, ( - U + 1) * Y ]
751------------------- CASE 2 -------------------
752Condition:
753 Green list: [ U - 1 ]
754 Red list: [ ]
755 Basis: [ (1) * X + (1) * Y ]
756WARNING: Test 4 - staple
757:B2:B2:B2
758------------------- CASE 1 -------------------
759Condition:
760 Green list: [ U ]
761 Red list: [ ]
762 Basis: [ (1) * X, (1) * Y ]
763------------------- CASE 2 -------------------
764Condition:
765 Green list: [ ]
766 Red list: [ U, U - 1 ]
767 Basis: [ (U^2 - U) * X, (U - 1) * Y ]
768------------------- CASE 3 -------------------
769Condition:
770 Green list: [ U - 1 ]
771 Red list: [ U ]
772 Basis: [ (1) * X + (1) * Y ]
773WARNING: Test 5 - a small robot example
774:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
775------------------- CASE 1 -------------------
776Condition:
777 Green list: [ ]
778 Red list: [ L3, A^2 + B^2, L2, A ]
779 Basis: [ ( - 2 * A * L2 * L3) * S2 + ( - 2 * A^2 * L2 - 2 * B^2 * L2) * S1 + (A^2 * B + B^3 + B * L2^2 - B * L3^2), ( - 2 * L2 * L3) * C2 + (A^2 + B^2 - L2^2 - L3^2), ( - 2 * A * L2) * C1 + ( - 2 * B * L2) * S1 + (A^2 + B^2 + L2^2 - L3^2), (4 * A^2 * L2^2 + 4 * B^2 * L2^2) * S1^2 + ( - 4 * A^2 * B * L2 - 4 * B^3 * L2 - 4 * B * L2^3 + 4 * B * L2 * L3^2) * S1 + (A^4 + 2 * A^2 * B^2 - 2 * A^2 * L2^2 - 2 * A^2 * L3^2 + B^4 + 2 * B^2 * L2^2 - 2 * B^2 * L3^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4) ]
780------------------- CASE 2 -------------------
781Condition:
782 Green list: [ A^2 + B^2 ]
783 Red list: [ L3, A^2 * B + B^3 + B * L2^2 - B * L3^2, L2, A ]
784 Basis: [ (4 * A * B * L2^3 * L3 - 4 * A * B * L2 * L3^3) * S2 + ( - 2 * B^2 * L2^4 + 4 * B^2 * L2^2 * L3^2 - 2 * B^2 * L3^4), ( - 2 * L2 * L3) * C2 + ( - L2^2 - L3^2), (4 * A * L2^3 - 4 * A * L2 * L3^2) * C1 + (4 * B^2 * L2^2 - L2^4 + 2 * L2^2 * L3^2 - L3^4), ( - 4 * B * L2^3 + 4 * B * L2 * L3^2) * S1 + (4 * B^2 * L2^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4) ]
785------------------- CASE 3 -------------------
786Condition:
787 Green list: [ A^2 + B^2, L2^2 - L3^2 ]
788 Red list: [ L3, A, L2, A^4 + 2 * A^2 * B^2 - 2 * A^2 * L2^2 - 2 * A^2 * L3^2 + B^4 + 2 * B^2 * L2^2 - 2 * B^2 * L3^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4 ]
789 Basis: [ (4 * B^2 * L3^2) ]
790------------------- CASE 4 -------------------
791Condition:
792 Green list: [ A ]
793 Red list: [ L3, B, L2 ]
794 Basis: [ (4 * B^2 * L2^2) * C1^2 + (B^4 - 2 * B^2 * L2^2 - 2 * B^2 * L3^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4), (2 * B * L2 * L3) * S2 + ( - 2 * B^2 * L2) * C1 + (0), ( - 2 * L2 * L3) * C2 + (0) * C1 + (B^2 - L2^2 - L3^2), ( - 2 * B * L2) * S1 + (B^2 + L2^2 - L3^2) ]
795------------------- CASE 5 -------------------
796Condition:
797 Green list: [ A, B ]
798 Red list: [ L3, L2, A^2 + B^2 + L2^2 - L3^2 ]
799 Basis: [ (L2^2 - L3^2) ]
800------------------- CASE 6 -------------------
801Condition:
802 Green list: [ A, B, L2^2 - L3^2 ]
803 Red list: [ L3, L2 ]
804 Basis: [ (1) * C1^2 + (1) * S1^2 + ( - 1), (L3) * S2 + (0) * C1 + (0) * S1, (L3) * C2 + (0) * C1 + (0) * S1 + (L2) ]
805WARNING: Test 6 - Circle of Apollonius
806:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
807------------------- CASE 1 -------------------
808Condition:
809 Green list: [ U2, U1 ]
810 Red list: [ ]
811 Basis: [ (2) * X1 + (0), (2) * X2 + (0), (2) * X3 + (0), (2) * X4 + (0), ( - 4) * X6^2 + (8) * X6 * X8 + (0) * X8 + (0), (4) * S * X5^2 + ( - 8) * S * X5 * X7 + (0) * S * X7 + (0) * S * X8 + (0) * S + ( - 4) ]
812------------------- CASE 2 -------------------
813Condition:
814 Green list: [ U2 ]
815 Red list: [ U1 ]
816 Basis: [ ( - 4 * U1^3) ]
817------------------- CASE 3 -------------------
818Condition:
819 Green list: [ U1 ]
820 Red list: [ U2 ]
821 Basis: [ (4 * U2^2) ]
822------------------- CASE 4 -------------------
823Condition:
824 Green list: [ ]
825 Red list: [ U1, U2, U1^2 - U2^2, U1^2 + U2^2 ]
826 Basis: [ (2) * X1 + ( - U1), (2) * X2 + ( - U2), (2) * X3 + ( - U1), (2) * X4 + ( - U2), (U1^2 * U2 + U2^3) * X5 + ( - U1 * U2^3), ( - U1^2 - U2^2) * X6 + (U1^2 * U2), ( - 4 * U1^5 + 4 * U1 * U2^4) * X7 + (U1^6 + 2 * U1^4 * U2^2 - 3 * U1^2 * U2^4), ( - 4 * U1^4 * U2 + 4 * U2^5) * X8 + (3 * U1^4 * U2^2 - 2 * U1^2 * U2^4 - U2^6), (2 * U1^6 * U2^2 - 2 * U1^4 * U2^4) * S + (4 * U1^6 - 4 * U1^2 * U2^4) ]
827------------------- CASE 5 -------------------
828Condition:
829 Green list: [ U1^2 - U2^2 ]
830 Red list: [ U1, U1^2 + U2^2, U2 ]
831 Basis: [ (2) * X1 + ( - U1), (2) * X2 + ( - U2), (2) * X3 + ( - U1), (2) * X4 + ( - U2), (2 * U2^3) * X5 + ( - U1 * U2^3), ( - 2 * U2^2) * X6 + (U2^3), (4 * U1) * X7 + ( - 4 * U2) * X8 + (0), ( - 8 * U2^5) * S * X8 + (2 * U2^6) * S + ( - 8 * U2^4) ]
832------------------- CASE 6 -------------------
833Condition:
834 Green list: [ U1^2 + U2^2 ]
835 Red list: [ U1, U2 ]
836 Basis: [ ( - U2^3) ]
837WARNING: Test 7
838
839; in: LAMBDA NIL
840; (SETF CGB-LISP::FL
841; (CDR
842; (PARSE:PARSE-STRING-TO-SORTED-ALIST
843; "[a^2*x^2*y+b*x^2*y+a^3*b*x*y+a^3*c*x*y,c^2*a*x^2+c^2*b*x^2+b*y+4]"
844; '(CGB-LISP::X CGB-LISP::Y CGB-LISP::A CGB-LISP::B CGB-LISP::C))))
845; ==>
846; (SETQ CGB-LISP::FL
847; (CDR
848; (PARSE:PARSE-STRING-TO-SORTED-ALIST
849; "[a^2*x^2*y+b*x^2*y+a^3*b*x*y+a^3*c*x*y,c^2*a*x^2+c^2*b*x^2+b*y+4]"
850; '(CGB-LISP::X CGB-LISP::Y CGB-LISP::A CGB-LISP::B CGB-LISP::C))))
851;
852; caught WARNING:
853; undefined variable: FL
854
855;
856; caught WARNING:
857; This variable is undefined:
858; FL
859;
860; compilation unit finished
861; caught 2 WARNING conditions
862
863; in: LAMBDA NIL
864; (SETF CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 2))
865; ==>
866; (SETQ CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 2))
867;
868; caught WARNING:
869; undefined variable: CFL
870
871; (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 2)
872;
873; caught WARNING:
874; undefined variable: FL
875
876;
877; caught WARNING:
878; These variables are undefined:
879; CFL FL
880;
881; compilation unit finished
882; caught 3 WARNING conditions
883:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
884------------------- CASE 1 -------------------
885Condition:
886 Green list: [ ]
887 Red list: [ A * C^2 + B * C^2, A^2 + B ]
888 Basis: [ (A^2 + B) * X^2 * Y + (A^3 * B + A^3 * C) * X * Y, (A * C^2 + B * C^2) * X^2 + (B) * Y + (4) ]
889------------------- CASE 2 -------------------
890Condition:
891 Green list: [ A^2 + B ]
892 Red list: [ A * C^2 + B * C^2, A^3 * B + A^3 * C ]
893 Basis: [ (A^3 * B + A^3 * C) * X * Y, (A * C^2 + B * C^2) * X^2 + (B) * Y + (4) ]
894------------------- CASE 3 -------------------
895Condition:
896 Green list: [ B + C, A^2 - C ]
897 Red list: [ A * C^2 + B * C^2 ]
898 Basis: [ (A * C^2 + B * C^2) * X^2 + (B) * Y + (4) ]
899------------------- CASE 4 -------------------
900Condition:
901 Green list: [ A * C^2 + B * C^2 ]
902 Red list: [ B, A^2 + B ]
903 Basis: [ (A^2 + B) * X^2 * Y + (A^3 * B + A^3 * C) * X * Y, (B) * Y + (4) ]
904------------------- CASE 5 -------------------
905Condition:
906 Green list: [ A^2 + B, B * C^2 + C^2, A * C^2 - C^2 ]
907 Red list: [ B, A^3 * B + A^3 * C ]
908 Basis: [ (A^3 * B + A^3 * C) * X * Y, (B) * Y + (4) ]
909------------------- CASE 6 -------------------
910Condition:
911 Green list: [ C - 1, B + 1, A - 1 ]
912 Red list: [ B ]
913 Basis: [ (B) * Y + (4) ]
914------------------- CASE 7 -------------------
915Condition:
916 Green list: [ B, C^2 ]
917 Red list: [ 4, A^2 + B ]
918 Basis: [ (A^2 + B) * X^2 * Y + (A^3 * B + A^3 * C) * X * Y, (4) ]
919------------------- CASE 8 -------------------
920Condition:
921 Green list: [ B, A * C^2, A^2 ]
922 Red list: [ 4 ]
923 Basis: [ (4) ]
924WARNING: Test 8
925
926; in: LAMBDA NIL
927; (SETF CGB-LISP::FL
928; (CDR
929; (PARSE:PARSE-STRING-TO-SORTED-ALIST "[a^2*x+5*a]"
930; '(CGB-LISP::X CGB-LISP::A))))
931; ==>
932; (SETQ CGB-LISP::FL
933; (CDR
934; (PARSE:PARSE-STRING-TO-SORTED-ALIST "[a^2*x+5*a]"
935; '(CGB-LISP::X CGB-LISP::A))))
936;
937; caught WARNING:
938; undefined variable: FL
939
940;
941; caught WARNING:
942; This variable is undefined:
943; FL
944;
945; compilation unit finished
946; caught 2 WARNING conditions
947
948; in: LAMBDA NIL
949; (SETF CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 1))
950; ==>
951; (SETQ CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 1))
952;
953; caught WARNING:
954; undefined variable: CFL
955
956; (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 1)
957;
958; caught WARNING:
959; undefined variable: FL
960
961;
962; caught WARNING:
963; These variables are undefined:
964; CFL FL
965;
966; compilation unit finished
967; caught 3 WARNING conditions
968
969------------------- CASE 1 -------------------
970Condition:
971 Green list: [ ]
972 Red list: [ A^2 ]
973 Basis: [ (A^2) * X + (5 * A) ]
974------------------- CASE 2 -------------------
975Condition:
976 Green list: [ A^2 ]
977 Red list: [ ]
978 Basis: [ ]
979WARNING: Test 9 - the discriminant of a quadratic polynomial
980:B2:B2:B2:B2:B2:B2
981------------------- CASE 1 -------------------
982Condition:
983 Green list: [ ]
984 Red list: [ A, 4 * A * C - B^2 ]
985 Basis: [ (4 * A * C - B^2) ]
986------------------- CASE 2 -------------------
987Condition:
988 Green list: [ 4 * A * C - B^2 ]
989 Red list: [ A ]
990 Basis: [ (2 * A) * X + (B) ]
991WARNING: Test 10 - the discriminant of a cubic polynomial
992:B2:B2:B2:B2:B2:B2
993------------------- CASE 1 -------------------
994Condition:
995 Green list: [ ]
996 Red list: [ P, 4 * P^3 + 27 * Q^2 ]
997 Basis: [ ( - 4 * P^3 - 27 * Q^2) ]
998------------------- CASE 2 -------------------
999Condition:
1000 Green list: [ 4 * P^3 + 27 * Q^2 ]
1001 Red list: [ P ]
1002 Basis: [ (2 * P) * X + (3 * Q) ]
1003------------------- CASE 3 -------------------
1004Condition:
1005 Green list: [ P ]
1006 Red list: [ Q ]
1007 Basis: [ (3 * Q) ]
1008------------------- CASE 4 -------------------
1009Condition:
1010 Green list: [ P, Q ]
1011 Red list: [ ]
1012 Basis: [ (3) * X^2 + (0) ]
1013WARNING: Test 11 - the discriminant of a quartic polynomial
1014:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
1015------------------- CASE 1 -------------------
1016Condition:
1017 Green list: [ ]
1018 Red list: [ 16 * P^4 * R - 4 * P^3 * Q^2 - 128 * P^2 * R^2 + 144 * P * Q^2 * R - 27 * Q^4 + 256 * R^3, P, 2 * P^3 - 8 * P * R + 9 * Q^2 ]
1019 Basis: [ (16 * P^6 * R - 4 * P^5 * Q^2 - 128 * P^4 * R^2 + 144 * P^3 * Q^2 * R - 27 * P^2 * Q^4 + 256 * P^2 * R^3) ]
1020------------------- CASE 2 -------------------
1021Condition:
1022 Green list: [ 16 * P^4 * R - 4 * P^3 * Q^2 - 128 * P^2 * R^2 + 144 * P * Q^2 * R - 27 * Q^4 + 256 * R^3 ]
1023 Red list: [ P, 2 * P^3 - 8 * P * R + 9 * Q^2 ]
1024 Basis: [ ( - 2 * P^3 + 8 * P * R - 9 * Q^2) * X + ( - P^2 * Q - 12 * Q * R) ]
1025------------------- CASE 3 -------------------
1026Condition:
1027 Green list: [ 2 * P^3 - 8 * P * R + 9 * Q^2 ]
1028 Red list: [ P, P^2 * Q + 12 * Q * R ]
1029 Basis: [ ( - P^2 * Q - 12 * Q * R) ]
1030------------------- CASE 4 -------------------
1031Condition:
1032 Green list: [ 2 * P^3 - 8 * P * R + 9 * Q^2, P^2 * Q + 12 * Q * R, 32 * P * Q * R - 9 * Q^3, 3 * P * Q^3 + 128 * Q * R^2, 27 * Q^5 + 4096 * Q * R^3, 8 * P^2 * R - 3 * P * Q^2 - 32 * R^2 ]
1033 Red list: [ P ]
1034 Basis: [ (2 * P) * X^2 + (3 * Q) * X + (4 * R) ]
1035------------------- CASE 5 -------------------
1036Condition:
1037 Green list: [ P ]
1038 Red list: [ Q, 72 * P * Q^2 * R - 27 * Q^4 + 256 * R^3 ]
1039 Basis: [ (27 * Q^4 - 256 * R^3) ]
1040------------------- CASE 6 -------------------
1041Condition:
1042 Green list: [ P, 27 * Q^4 - 256 * R^3 ]
1043 Red list: [ Q ]
1044 Basis: [ (3 * Q) * X + (4 * R) ]
1045------------------- CASE 7 -------------------
1046Condition:
1047 Green list: [ P, Q ]
1048 Red list: [ R ]
1049 Basis: [ (4 * R) ]
1050------------------- CASE 8 -------------------
1051Condition:
1052 Green list: [ P, Q, R ]
1053 Red list: [ ]
1054 Basis: [ (4) * X^3 + (0) * X + (0) ]WARNING: Test 1
1055
1056------------------- CASE 1 -------------------
1057Condition:
1058 Green list: [ ]
1059 Red list: [ ]
1060 Basis: [ (4) * X + (5) * Y, ( - 10) * Y^2 ]
1061WARNING: Test 2 - Enneper
1062
1063------------------- CASE 1 -------------------
1064Condition:
1065 Green list: [ ]
1066 Red list: [ ]
1067 Basis: [ ( - 3) * U^2 + (3) * V^2 + (1) * Z, (2) * V^3 + (1) * V * Z + (3) * V + ( - 1) * Y, ( - 6) * U * V^2 + (1) * U * Z + ( - 9) * U + (3) * X, (4) * U * V * Z + ( - 3) * U * Y + (3) * V * X, (9) * U * V * Y + ( - 2) * U * Z^2 + (18) * U * Z + ( - 9) * V^2 * X + ( - 6) * X * Z, ( - 27) * U * Y^2 + (8) * U * Z^3 + ( - 72) * U * Z^2 + (36) * V^2 * X * Z + (27) * V * X * Y + (24) * X * Z^2, (34992) * V^2 * X^2 + ( - 34992) * V^2 * Y^2 + ( - 186624) * V^2 * Z + ( - 15552) * V * Y * Z^2 + (46656) * V * Y * Z + (15552) * X^2 * Z + (93312) * X^2 + (19440) * Y^2 * Z + ( - 93312) * Y^2 + ( - 576) * Z^4 + (6912) * Z^3 + (15552) * Z^2 + ( - 279936) * Z, (139968) * U * X + (93312) * V^2 * Z + ( - 139968) * V * Y + (15552) * Z^2 + ( - 139968) * Z, (105815808) * V^2 * Y * Z + (52907904) * V * X^2 + ( - 52907904) * V * Y^2 + (15676416) * V * Z^3 + (141087744) * V * Z^2 + ( - 17635968) * Y * Z^2 + ( - 52907904) * Y * Z, (31104) * V^2 * Z^2 + (93312) * V^2 * Z + ( - 93312) * V * Y * Z + ( - 46656) * X^2 + (46656) * Y^2 + (1728) * Z^3 + ( - 31104) * Z^2 + (139968) * Z, (8817984) * V * X^2 * Z + (26453952) * V * X^2 + (44089920) * V * Y^2 * Z + ( - 26453952) * V * Y^2 + (2612736) * V * Z^4 + (31352832) * V * Z^3 + (70543872) * V * Z^2 + (26453952) * X^2 * Y + ( - 26453952) * Y^3 + ( - 3919104) * Y * Z^3 + ( - 105815808) * Y * Z, ( - 158723712) * V * X^2 * Y + ( - 317447424) * V * Y^3 * Z + (158723712) * V * Y^3 + ( - 23514624) * V * Y * Z^4 + ( - 188116992) * V * Y * Z^3 + ( - 634894848) * V * Y * Z^2 + (26453952) * X^4 + ( - 211631616) * X^2 * Y^2 + (6858432) * X^2 * Z^3 + (88179840) * X^2 * Z^2 + ( - 79361856) * X^2 * Z + (185177664) * Y^4 + (34292160) * Y^2 * Z^3 + ( - 35271936) * Y^2 * Z^2 + (714256704) * Y^2 * Z + ( - 290304) * Z^6 + (2612736) * Z^5 + (23514624) * Z^4 + ( - 211631616) * Z^3, ( - 317447424) * V * Y^3 * Z^2 + ( - 23514624) * V * Y * Z^5 + ( - 211631616) * V * Y * Z^4 + ( - 634894848) * V * Y * Z^3 + ( - 634894848) * V * Y * Z^2 + (26453952) * X^4 * Z + (79361856) * X^4 + ( - 211631616) * X^2 * Y^2 * Z + ( - 158723712) * X^2 * Y^2 + (6858432) * X^2 * Z^4 + (108755136) * X^2 * Z^3 + (185177664) * X^2 * Z^2 + ( - 238085568) * X^2 * Z + (185177664) * Y^4 * Z + (79361856) * Y^4 + (34292160) * Y^2 * Z^4 + ( - 2939328) * Y^2 * Z^3 + (608440896) * Y^2 * Z^2 + (238085568) * Y^2 * Z + ( - 290304) * Z^7 + (1741824) * Z^6 + (31352832) * Z^5 + ( - 141087744) * Z^4 + ( - 634894848) * Z^3, (79361856) * V * X^4 + (2539579392) * V * X^2 + (317447424) * V * Y^4 * Z + ( - 79361856) * V * Y^4 + (23514624) * V * Y^2 * Z^4 + (117573120) * V * Y^2 * Z^3 + ( - 423263232) * V * Y^2 * Z^2 + (5079158784) * V * Y^2 * Z + ( - 2539579392) * V * Y^2 + ( - 6967296) * V * Z^6 + ( - 125411328) * V * Z^5 + ( - 564350976) * V * Z^4 + (752467968) * V * Z^3 + (6772211712) * V * Z^2 + ( - 26453952) * X^4 * Y + (211631616) * X^2 * Y^3 + ( - 6858432) * X^2 * Y * Z^3 + ( - 255721536) * X^2 * Y * Z^2 + ( - 846526464) * X^2 * Y * Z + (2539579392) * X^2 * Y + ( - 185177664) * Y^5 + ( - 34292160) * Y^3 * Z^3 + (44089920) * Y^3 * Z^2 + (211631616) * Y^3 * Z + ( - 2539579392) * Y^3 + (290304) * Y * Z^6 + (10450944) * Y * Z^5 + (7838208) * Y * Z^4 + (188116992) * Y * Z^3 + (3386105856) * Y * Z^2 + ( - 10158317568) * Y * Z, ( - 714256704) * X^6 + (2142770112) * X^4 * Y^2 + ( - 396809280) * X^4 * Z^3 + ( - 4285540224) * X^4 * Z^2 + (2142770112) * X^4 * Z + ( - 2142770112) * X^2 * Y^4 + ( - 2063408256) * X^2 * Y^2 * Z^3 + ( - 4285540224) * X^2 * Y^2 * Z + ( - 47029248) * X^2 * Z^6 + ( - 1269789696) * X^2 * Z^5 + ( - 6348948480) * X^2 * Z^4 + (11428107264) * X^2 * Z^3 + (714256704) * Y^6 + ( - 396809280) * Y^4 * Z^3 + (4285540224) * Y^4 * Z^2 + (2142770112) * Y^4 * Z + (47029248) * Y^2 * Z^6 + ( - 1269789696) * Y^2 * Z^5 + (6348948480) * Y^2 * Z^4 + (11428107264) * Y^2 * Z^3 + (2322432) * Z^9 + ( - 376233984) * Z^7 + (15237476352) * Z^5 ]:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
1068Args:[ U^3 - 3 * U * V^2 - 3 * U + X, - 3 * U^2 * V + V^3 - 3 * V + Y, - 3 * U^2 + 3 * V^2 + Z ]:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2[ 3 * U^2 - 3 * V^2 - Z, 6 * U * V^2 - U * Z + 9 * U - 3 * X, 2 * V^3 + V * Z + 3 * V - Y, 4 * U * V * Z - 3 * U * Y + 3 * V * X, 9 * U * X + 6 * V^2 * Z - 9 * V * Y + Z^2 - 9 * Z, 9 * U * V * Y - 2 * U * Z^2 + 18 * U * Z - 9 * V^2 * X - 6 * X * Z, 27 * U * Y^2 - 8 * U * Z^3 + 72 * U * Z^2 - 36 * V^2 * X * Z - 27 * V * X * Y - 24 * X * Z^2, 18 * V^2 * Z^2 + 54 * V^2 * Z - 54 * V * Y * Z - 27 * X^2 + 27 * Y^2 + Z^3 - 18 * Z^2 + 81 * Z, 243 * V^2 * X^2 - 243 * V^2 * Y^2 - 1296 * V^2 * Z - 108 * V * Y * Z^2 + 324 * V * Y * Z + 108 * X^2 * Z + 648 * X^2 + 135 * Y^2 * Z - 648 * Y^2 - 4 * Z^4 + 48 * Z^3 + 108 * Z^2 - 1944 * Z, 54 * V^2 * Y * Z + 27 * V * X^2 - 27 * V * Y^2 + 8 * V * Z^3 + 72 * V * Z^2 - 9 * Y * Z^2 - 27 * Y * Z, 27 * V * X^2 * Z + 81 * V * X^2 + 135 * V * Y^2 * Z - 81 * V * Y^2 + 8 * V * Z^4 + 96 * V * Z^3 + 216 * V * Z^2 + 81 * X^2 * Y - 81 * Y^3 - 12 * Y * Z^3 - 324 * Y * Z, 4374 * V * X^2 * Y + 8748 * V * Y^3 * Z - 4374 * V * Y^3 + 648 * V * Y * Z^4 + 5184 * V * Y * Z^3 + 17496 * V * Y * Z^2 - 729 * X^4 + 5832 * X^2 * Y^2 - 189 * X^2 * Z^3 - 2430 * X^2 * Z^2 + 2187 * X^2 * Z - 5103 * Y^4 - 945 * Y^2 * Z^3 + 972 * Y^2 * Z^2 - 19683 * Y^2 * Z + 8 * Z^6 - 72 * Z^5 - 648 * Z^4 + 5832 * Z^3, 8748 * V * Y^3 * Z^2 + 648 * V * Y * Z^5 + 5832 * V * Y * Z^4 + 17496 * V * Y * Z^3 + 17496 * V * Y * Z^2 - 729 * X^4 * Z - 2187 * X^4 + 5832 * X^2 * Y^2 * Z + 4374 * X^2 * Y^2 - 189 * X^2 * Z^4 - 2997 * X^2 * Z^3 - 5103 * X^2 * Z^2 + 6561 * X^2 * Z - 5103 * Y^4 * Z - 2187 * Y^4 - 945 * Y^2 * Z^4 + 81 * Y^2 * Z^3 - 16767 * Y^2 * Z^2 - 6561 * Y^2 * Z + 8 * Z^7 - 48 * Z^6 - 864 * Z^5 + 3888 * Z^4 + 17496 * Z^3, 19683 * X^6 - 59049 * X^4 * Y^2 + 10935 * X^4 * Z^3 + 118098 * X^4 * Z^2 - 59049 * X^4 * Z + 59049 * X^2 * Y^4 + 56862 * X^2 * Y^2 * Z^3 + 118098 * X^2 * Y^2 * Z + 1296 * X^2 * Z^6 + 34992 * X^2 * Z^5 + 174960 * X^2 * Z^4 - 314928 * X^2 * Z^3 - 19683 * Y^6 + 10935 * Y^4 * Z^3 - 118098 * Y^4 * Z^2 - 59049 * Y^4 * Z - 1296 * Y^2 * Z^6 + 34992 * Y^2 * Z^5 - 174960 * Y^2 * Z^4 - 314928 * Y^2 * Z^3 - 64 * Z^9 + 10368 * Z^7 - 419904 * Z^5, 2187 * V * X^4 + 69984 * V * X^2 + 8748 * V * Y^4 * Z - 2187 * V * Y^4 + 648 * V * Y^2 * Z^4 + 3240 * V * Y^2 * Z^3 - 11664 * V * Y^2 * Z^2 + 139968 * V * Y^2 * Z - 69984 * V * Y^2 - 192 * V * Z^6 - 3456 * V * Z^5 - 15552 * V * Z^4 + 20736 * V * Z^3 + 186624 * V * Z^2 - 729 * X^4 * Y + 5832 * X^2 * Y^3 - 189 * X^2 * Y * Z^3 - 7047 * X^2 * Y * Z^2 - 23328 * X^2 * Y * Z + 69984 * X^2 * Y - 5103 * Y^5 - 945 * Y^3 * Z^3 + 1215 * Y^3 * Z^2 + 5832 * Y^3 * Z - 69984 * Y^3 + 8 * Y * Z^6 + 288 * Y * Z^5 + 216 * Y * Z^4 + 5184 * Y * Z^3 + 93312 * Y * Z^2 - 279936 * Y * Z ]
1069WARNING: Test 3 - staple
1070:B2:B2:B2
1071------------------- CASE 1 -------------------
1072Condition:
1073 Green list: [ ]
1074 Red list: [ U - 1 ]
1075 Basis: [ (U - 1) * X, ( - U + 1) * Y ]
1076------------------- CASE 2 -------------------
1077Condition:
1078 Green list: [ U - 1 ]
1079 Red list: [ ]
1080 Basis: [ (1) * X + (1) * Y ]
1081WARNING: Test 4 - staple
1082:B2:B2:B2
1083------------------- CASE 1 -------------------
1084Condition:
1085 Green list: [ U ]
1086 Red list: [ ]
1087 Basis: [ (1) * X, (1) * Y ]
1088------------------- CASE 2 -------------------
1089Condition:
1090 Green list: [ ]
1091 Red list: [ U, U - 1 ]
1092 Basis: [ (U^2 - U) * X, (U - 1) * Y ]
1093------------------- CASE 3 -------------------
1094Condition:
1095 Green list: [ U - 1 ]
1096 Red list: [ U ]
1097 Basis: [ (1) * X + (1) * Y ]
1098WARNING: Test 5 - a small robot example
1099:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
1100------------------- CASE 1 -------------------
1101Condition:
1102 Green list: [ ]
1103 Red list: [ L3, A^2 + B^2, L2, A ]
1104 Basis: [ ( - 2 * A * L2 * L3) * S2 + ( - 2 * A^2 * L2 - 2 * B^2 * L2) * S1 + (A^2 * B + B^3 + B * L2^2 - B * L3^2), ( - 2 * L2 * L3) * C2 + (A^2 + B^2 - L2^2 - L3^2), ( - 2 * A * L2) * C1 + ( - 2 * B * L2) * S1 + (A^2 + B^2 + L2^2 - L3^2), (4 * A^2 * L2^2 + 4 * B^2 * L2^2) * S1^2 + ( - 4 * A^2 * B * L2 - 4 * B^3 * L2 - 4 * B * L2^3 + 4 * B * L2 * L3^2) * S1 + (A^4 + 2 * A^2 * B^2 - 2 * A^2 * L2^2 - 2 * A^2 * L3^2 + B^4 + 2 * B^2 * L2^2 - 2 * B^2 * L3^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4) ]
1105------------------- CASE 2 -------------------
1106Condition:
1107 Green list: [ A^2 + B^2 ]
1108 Red list: [ L3, A^2 * B + B^3 + B * L2^2 - B * L3^2, L2, A ]
1109 Basis: [ (4 * A * B * L2^3 * L3 - 4 * A * B * L2 * L3^3) * S2 + ( - 2 * B^2 * L2^4 + 4 * B^2 * L2^2 * L3^2 - 2 * B^2 * L3^4), ( - 2 * L2 * L3) * C2 + ( - L2^2 - L3^2), (4 * A * L2^3 - 4 * A * L2 * L3^2) * C1 + (4 * B^2 * L2^2 - L2^4 + 2 * L2^2 * L3^2 - L3^4), ( - 4 * B * L2^3 + 4 * B * L2 * L3^2) * S1 + (4 * B^2 * L2^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4) ]
1110------------------- CASE 3 -------------------
1111Condition:
1112 Green list: [ A^2 + B^2, L2^2 - L3^2 ]
1113 Red list: [ L3, A, L2, A^4 + 2 * A^2 * B^2 - 2 * A^2 * L2^2 - 2 * A^2 * L3^2 + B^4 + 2 * B^2 * L2^2 - 2 * B^2 * L3^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4 ]
1114 Basis: [ (4 * B^2 * L3^2) ]
1115------------------- CASE 4 -------------------
1116Condition:
1117 Green list: [ A ]
1118 Red list: [ L3, B, L2 ]
1119 Basis: [ (4 * B^2 * L2^2) * C1^2 + (B^4 - 2 * B^2 * L2^2 - 2 * B^2 * L3^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4), (2 * B * L2 * L3) * S2 + ( - 2 * B^2 * L2) * C1 + (0), ( - 2 * L2 * L3) * C2 + (0) * C1 + (B^2 - L2^2 - L3^2), ( - 2 * B * L2) * S1 + (B^2 + L2^2 - L3^2) ]
1120------------------- CASE 5 -------------------
1121Condition:
1122 Green list: [ A, B ]
1123 Red list: [ L3, L2, A^2 + B^2 + L2^2 - L3^2 ]
1124 Basis: [ (L2^2 - L3^2) ]
1125------------------- CASE 6 -------------------
1126Condition:
1127 Green list: [ A, B, L2^2 - L3^2 ]
1128 Red list: [ L3, L2 ]
1129 Basis: [ (1) * C1^2 + (1) * S1^2 + ( - 1), (L3) * S2 + (0) * C1 + (0) * S1, (L3) * C2 + (0) * C1 + (0) * S1 + (L2) ]
1130WARNING: Test 6 - Circle of Apollonius
1131:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
1132------------------- CASE 1 -------------------
1133Condition:
1134 Green list: [ U2, U1 ]
1135 Red list: [ ]
1136 Basis: [ (2) * X1 + (0), (2) * X2 + (0), (2) * X3 + (0), (2) * X4 + (0), ( - 4) * X6^2 + (8) * X6 * X8 + (0) * X8 + (0), (4) * S * X5^2 + ( - 8) * S * X5 * X7 + (0) * S * X7 + (0) * S * X8 + (0) * S + ( - 4) ]
1137------------------- CASE 2 -------------------
1138Condition:
1139 Green list: [ U2 ]
1140 Red list: [ U1 ]
1141 Basis: [ ( - 4 * U1^3) ]
1142------------------- CASE 3 -------------------
1143Condition:
1144 Green list: [ U1 ]
1145 Red list: [ U2 ]
1146 Basis: [ (4 * U2^2) ]
1147------------------- CASE 4 -------------------
1148Condition:
1149 Green list: [ ]
1150 Red list: [ U1, U2, U1^2 - U2^2, U1^2 + U2^2 ]
1151 Basis: [ (2) * X1 + ( - U1), (2) * X2 + ( - U2), (2) * X3 + ( - U1), (2) * X4 + ( - U2), (U1^2 * U2 + U2^3) * X5 + ( - U1 * U2^3), ( - U1^2 - U2^2) * X6 + (U1^2 * U2), ( - 4 * U1^5 + 4 * U1 * U2^4) * X7 + (U1^6 + 2 * U1^4 * U2^2 - 3 * U1^2 * U2^4), ( - 4 * U1^4 * U2 + 4 * U2^5) * X8 + (3 * U1^4 * U2^2 - 2 * U1^2 * U2^4 - U2^6), (2 * U1^6 * U2^2 - 2 * U1^4 * U2^4) * S + (4 * U1^6 - 4 * U1^2 * U2^4) ]
1152------------------- CASE 5 -------------------
1153Condition:
1154 Green list: [ U1^2 - U2^2 ]
1155 Red list: [ U1, U1^2 + U2^2, U2 ]
1156 Basis: [ (2) * X1 + ( - U1), (2) * X2 + ( - U2), (2) * X3 + ( - U1), (2) * X4 + ( - U2), (2 * U2^3) * X5 + ( - U1 * U2^3), ( - 2 * U2^2) * X6 + (U2^3), (4 * U1) * X7 + ( - 4 * U2) * X8 + (0), ( - 8 * U2^5) * S * X8 + (2 * U2^6) * S + ( - 8 * U2^4) ]
1157------------------- CASE 6 -------------------
1158Condition:
1159 Green list: [ U1^2 + U2^2 ]
1160 Red list: [ U1, U2 ]
1161 Basis: [ ( - U2^3) ]
1162WARNING: Test 7
1163
1164; in: LAMBDA NIL
1165; (SETF CGB-LISP::FL
1166; (CDR
1167; (PARSE:PARSE-STRING-TO-SORTED-ALIST
1168; "[a^2*x^2*y+b*x^2*y+a^3*b*x*y+a^3*c*x*y,c^2*a*x^2+c^2*b*x^2+b*y+4]"
1169; '(CGB-LISP::X CGB-LISP::Y CGB-LISP::A CGB-LISP::B CGB-LISP::C))))
1170; ==>
1171; (SETQ CGB-LISP::FL
1172; (CDR
1173; (PARSE:PARSE-STRING-TO-SORTED-ALIST
1174; "[a^2*x^2*y+b*x^2*y+a^3*b*x*y+a^3*c*x*y,c^2*a*x^2+c^2*b*x^2+b*y+4]"
1175; '(CGB-LISP::X CGB-LISP::Y CGB-LISP::A CGB-LISP::B CGB-LISP::C))))
1176;
1177; caught WARNING:
1178; undefined variable: FL
1179
1180;
1181; caught WARNING:
1182; This variable is undefined:
1183; FL
1184;
1185; compilation unit finished
1186; caught 2 WARNING conditions
1187
1188; in: LAMBDA NIL
1189; (SETF CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 2))
1190; ==>
1191; (SETQ CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 2))
1192;
1193; caught WARNING:
1194; undefined variable: CFL
1195
1196; (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 2)
1197;
1198; caught WARNING:
1199; undefined variable: FL
1200
1201;
1202; caught WARNING:
1203; These variables are undefined:
1204; CFL FL
1205;
1206; compilation unit finished
1207; caught 3 WARNING conditions
1208:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
1209------------------- CASE 1 -------------------
1210Condition:
1211 Green list: [ ]
1212 Red list: [ A * C^2 + B * C^2, A^2 + B ]
1213 Basis: [ (A^2 + B) * X^2 * Y + (A^3 * B + A^3 * C) * X * Y, (A * C^2 + B * C^2) * X^2 + (B) * Y + (4) ]
1214------------------- CASE 2 -------------------
1215Condition:
1216 Green list: [ A^2 + B ]
1217 Red list: [ A * C^2 + B * C^2, A^3 * B + A^3 * C ]
1218 Basis: [ (A^3 * B + A^3 * C) * X * Y, (A * C^2 + B * C^2) * X^2 + (B) * Y + (4) ]
1219------------------- CASE 3 -------------------
1220Condition:
1221 Green list: [ B + C, A^2 - C ]
1222 Red list: [ A * C^2 + B * C^2 ]
1223 Basis: [ (A * C^2 + B * C^2) * X^2 + (B) * Y + (4) ]
1224------------------- CASE 4 -------------------
1225Condition:
1226 Green list: [ A * C^2 + B * C^2 ]
1227 Red list: [ B, A^2 + B ]
1228 Basis: [ (A^2 + B) * X^2 * Y + (A^3 * B + A^3 * C) * X * Y, (B) * Y + (4) ]
1229------------------- CASE 5 -------------------
1230Condition:
1231 Green list: [ A^2 + B, B * C^2 + C^2, A * C^2 - C^2 ]
1232 Red list: [ B, A^3 * B + A^3 * C ]
1233 Basis: [ (A^3 * B + A^3 * C) * X * Y, (B) * Y + (4) ]
1234------------------- CASE 6 -------------------
1235Condition:
1236 Green list: [ C - 1, B + 1, A - 1 ]
1237 Red list: [ B ]
1238 Basis: [ (B) * Y + (4) ]
1239------------------- CASE 7 -------------------
1240Condition:
1241 Green list: [ B, C^2 ]
1242 Red list: [ 4, A^2 + B ]
1243 Basis: [ (A^2 + B) * X^2 * Y + (A^3 * B + A^3 * C) * X * Y, (4) ]
1244------------------- CASE 8 -------------------
1245Condition:
1246 Green list: [ B, A * C^2, A^2 ]
1247 Red list: [ 4 ]
1248 Basis: [ (4) ]
1249WARNING: Test 8
1250
1251; in: LAMBDA NIL
1252; (SETF CGB-LISP::FL
1253; (CDR
1254; (PARSE:PARSE-STRING-TO-SORTED-ALIST "[a^2*x+5*a]"
1255; '(CGB-LISP::X CGB-LISP::A))))
1256; ==>
1257; (SETQ CGB-LISP::FL
1258; (CDR
1259; (PARSE:PARSE-STRING-TO-SORTED-ALIST "[a^2*x+5*a]"
1260; '(CGB-LISP::X CGB-LISP::A))))
1261;
1262; caught WARNING:
1263; undefined variable: FL
1264
1265;
1266; caught WARNING:
1267; This variable is undefined:
1268; FL
1269;
1270; compilation unit finished
1271; caught 2 WARNING conditions
1272
1273; in: LAMBDA NIL
1274; (SETF CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 1))
1275; ==>
1276; (SETQ CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 1))
1277;
1278; caught WARNING:
1279; undefined variable: CFL
1280
1281; (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 1)
1282;
1283; caught WARNING:
1284; undefined variable: FL
1285
1286;
1287; caught WARNING:
1288; These variables are undefined:
1289; CFL FL
1290;
1291; compilation unit finished
1292; caught 3 WARNING conditions
1293
1294------------------- CASE 1 -------------------
1295Condition:
1296 Green list: [ ]
1297 Red list: [ A^2 ]
1298 Basis: [ (A^2) * X + (5 * A) ]
1299------------------- CASE 2 -------------------
1300Condition:
1301 Green list: [ A^2 ]
1302 Red list: [ ]
1303 Basis: [ ]
1304WARNING: Test 9 - the discriminant of a quadratic polynomial
1305:B2:B2:B2:B2:B2:B2
1306------------------- CASE 1 -------------------
1307Condition:
1308 Green list: [ ]
1309 Red list: [ A, 4 * A * C - B^2 ]
1310 Basis: [ (4 * A * C - B^2) ]
1311------------------- CASE 2 -------------------
1312Condition:
1313 Green list: [ 4 * A * C - B^2 ]
1314 Red list: [ A ]
1315 Basis: [ (2 * A) * X + (B) ]
1316WARNING: Test 10 - the discriminant of a cubic polynomial
1317:B2:B2:B2:B2:B2:B2
1318------------------- CASE 1 -------------------
1319Condition:
1320 Green list: [ ]
1321 Red list: [ P, 4 * P^3 + 27 * Q^2 ]
1322 Basis: [ ( - 4 * P^3 - 27 * Q^2) ]
1323------------------- CASE 2 -------------------
1324Condition:
1325 Green list: [ 4 * P^3 + 27 * Q^2 ]
1326 Red list: [ P ]
1327 Basis: [ (2 * P) * X + (3 * Q) ]
1328------------------- CASE 3 -------------------
1329Condition:
1330 Green list: [ P ]
1331 Red list: [ Q ]
1332 Basis: [ (3 * Q) ]
1333------------------- CASE 4 -------------------
1334Condition:
1335 Green list: [ P, Q ]
1336 Red list: [ ]
1337 Basis: [ (3) * X^2 + (0) ]
1338WARNING: Test 11 - the discriminant of a quartic polynomial
1339:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2:B2
1340------------------- CASE 1 -------------------
1341Condition:
1342 Green list: [ ]
1343 Red list: [ 16 * P^4 * R - 4 * P^3 * Q^2 - 128 * P^2 * R^2 + 144 * P * Q^2 * R - 27 * Q^4 + 256 * R^3, P, 2 * P^3 - 8 * P * R + 9 * Q^2 ]
1344 Basis: [ (16 * P^6 * R - 4 * P^5 * Q^2 - 128 * P^4 * R^2 + 144 * P^3 * Q^2 * R - 27 * P^2 * Q^4 + 256 * P^2 * R^3) ]
1345------------------- CASE 2 -------------------
1346Condition:
1347 Green list: [ 16 * P^4 * R - 4 * P^3 * Q^2 - 128 * P^2 * R^2 + 144 * P * Q^2 * R - 27 * Q^4 + 256 * R^3 ]
1348 Red list: [ P, 2 * P^3 - 8 * P * R + 9 * Q^2 ]
1349 Basis: [ ( - 2 * P^3 + 8 * P * R - 9 * Q^2) * X + ( - P^2 * Q - 12 * Q * R) ]
1350------------------- CASE 3 -------------------
1351Condition:
1352 Green list: [ 2 * P^3 - 8 * P * R + 9 * Q^2 ]
1353 Red list: [ P, P^2 * Q + 12 * Q * R ]
1354 Basis: [ ( - P^2 * Q - 12 * Q * R) ]
1355------------------- CASE 4 -------------------
1356Condition:
1357 Green list: [ 2 * P^3 - 8 * P * R + 9 * Q^2, P^2 * Q + 12 * Q * R, 32 * P * Q * R - 9 * Q^3, 3 * P * Q^3 + 128 * Q * R^2, 27 * Q^5 + 4096 * Q * R^3, 8 * P^2 * R - 3 * P * Q^2 - 32 * R^2 ]
1358 Red list: [ P ]
1359 Basis: [ (2 * P) * X^2 + (3 * Q) * X + (4 * R) ]
1360------------------- CASE 5 -------------------
1361Condition:
1362 Green list: [ P ]
1363 Red list: [ Q, 72 * P * Q^2 * R - 27 * Q^4 + 256 * R^3 ]
1364 Basis: [ (27 * Q^4 - 256 * R^3) ]
1365------------------- CASE 6 -------------------
1366Condition:
1367 Green list: [ P, 27 * Q^4 - 256 * R^3 ]
1368 Red list: [ Q ]
1369 Basis: [ (3 * Q) * X + (4 * R) ]
1370------------------- CASE 7 -------------------
1371Condition:
1372 Green list: [ P, Q ]
1373 Red list: [ R ]
1374 Basis: [ (4 * R) ]
1375------------------- CASE 8 -------------------
1376Condition:
1377 Green list: [ P, Q, R ]
1378 Red list: [ ]
1379 Basis: [ (4) * X^3 + (0) * X + (0) ]WARNING: Test 1
1380------------------- CASE 1 -------------------
1381Condition:
1382 Green list: [ ]
1383 Red list: [ ]
1384 Basis: [ (4) * X + (5) * Y, ( - 10) * Y^2 ]
1385WARNING: Test 2 - Enneper
1386------------------- CASE 1 -------------------
1387Condition:
1388 Green list: [ ]
1389 Red list: [ ]
1390 Basis: [ ( - 3) * U^2 + (3) * V^2 + (1) * Z, (2) * V^3 + (1) * V * Z + (3) * V + ( - 1) * Y, ( - 6) * U * V^2 + (1) * U * Z + ( - 9) * U + (3) * X, (4) * U * V * Z + ( - 3) * U * Y + (3) * V * X, (9) * U * V * Y + ( - 2) * U * Z^2 + (18) * U * Z + ( - 9) * V^2 * X + ( - 6) * X * Z, ( - 27) * U * Y^2 + (8) * U * Z^3 + ( - 72) * U * Z^2 + (36) * V^2 * X * Z + (27) * V * X * Y + (24) * X * Z^2, (34992) * V^2 * X^2 + ( - 34992) * V^2 * Y^2 + ( - 186624) * V^2 * Z + ( - 15552) * V * Y * Z^2 + (46656) * V * Y * Z + (15552) * X^2 * Z + (93312) * X^2 + (19440) * Y^2 * Z + ( - 93312) * Y^2 + ( - 576) * Z^4 + (6912) * Z^3 + (15552) * Z^2 + ( - 279936) * Z, (139968) * U * X + (93312) * V^2 * Z + ( - 139968) * V * Y + (15552) * Z^2 + ( - 139968) * Z, (105815808) * V^2 * Y * Z + (52907904) * V * X^2 + ( - 52907904) * V * Y^2 + (15676416) * V * Z^3 + (141087744) * V * Z^2 + ( - 17635968) * Y * Z^2 + ( - 52907904) * Y * Z, (31104) * V^2 * Z^2 + (93312) * V^2 * Z + ( - 93312) * V * Y * Z + ( - 46656) * X^2 + (46656) * Y^2 + (1728) * Z^3 + ( - 31104) * Z^2 + (139968) * Z, (8817984) * V * X^2 * Z + (26453952) * V * X^2 + (44089920) * V * Y^2 * Z + ( - 26453952) * V * Y^2 + (2612736) * V * Z^4 + (31352832) * V * Z^3 + (70543872) * V * Z^2 + (26453952) * X^2 * Y + ( - 26453952) * Y^3 + ( - 3919104) * Y * Z^3 + ( - 105815808) * Y * Z, ( - 158723712) * V * X^2 * Y + ( - 317447424) * V * Y^3 * Z + (158723712) * V * Y^3 + ( - 23514624) * V * Y * Z^4 + ( - 188116992) * V * Y * Z^3 + ( - 634894848) * V * Y * Z^2 + (26453952) * X^4 + ( - 211631616) * X^2 * Y^2 + (6858432) * X^2 * Z^3 + (88179840) * X^2 * Z^2 + ( - 79361856) * X^2 * Z + (185177664) * Y^4 + (34292160) * Y^2 * Z^3 + ( - 35271936) * Y^2 * Z^2 + (714256704) * Y^2 * Z + ( - 290304) * Z^6 + (2612736) * Z^5 + (23514624) * Z^4 + ( - 211631616) * Z^3, ( - 317447424) * V * Y^3 * Z^2 + ( - 23514624) * V * Y * Z^5 + ( - 211631616) * V * Y * Z^4 + ( - 634894848) * V * Y * Z^3 + ( - 634894848) * V * Y * Z^2 + (26453952) * X^4 * Z + (79361856) * X^4 + ( - 211631616) * X^2 * Y^2 * Z + ( - 158723712) * X^2 * Y^2 + (6858432) * X^2 * Z^4 + (108755136) * X^2 * Z^3 + (185177664) * X^2 * Z^2 + ( - 238085568) * X^2 * Z + (185177664) * Y^4 * Z + (79361856) * Y^4 + (34292160) * Y^2 * Z^4 + ( - 2939328) * Y^2 * Z^3 + (608440896) * Y^2 * Z^2 + (238085568) * Y^2 * Z + ( - 290304) * Z^7 + (1741824) * Z^6 + (31352832) * Z^5 + ( - 141087744) * Z^4 + ( - 634894848) * Z^3, (79361856) * V * X^4 + (2539579392) * V * X^2 + (317447424) * V * Y^4 * Z + ( - 79361856) * V * Y^4 + (23514624) * V * Y^2 * Z^4 + (117573120) * V * Y^2 * Z^3 + ( - 423263232) * V * Y^2 * Z^2 + (5079158784) * V * Y^2 * Z + ( - 2539579392) * V * Y^2 + ( - 6967296) * V * Z^6 + ( - 125411328) * V * Z^5 + ( - 564350976) * V * Z^4 + (752467968) * V * Z^3 + (6772211712) * V * Z^2 + ( - 26453952) * X^4 * Y + (211631616) * X^2 * Y^3 + ( - 6858432) * X^2 * Y * Z^3 + ( - 255721536) * X^2 * Y * Z^2 + ( - 846526464) * X^2 * Y * Z + (2539579392) * X^2 * Y + ( - 185177664) * Y^5 + ( - 34292160) * Y^3 * Z^3 + (44089920) * Y^3 * Z^2 + (211631616) * Y^3 * Z + ( - 2539579392) * Y^3 + (290304) * Y * Z^6 + (10450944) * Y * Z^5 + (7838208) * Y * Z^4 + (188116992) * Y * Z^3 + (3386105856) * Y * Z^2 + ( - 10158317568) * Y * Z, ( - 714256704) * X^6 + (2142770112) * X^4 * Y^2 + ( - 396809280) * X^4 * Z^3 + ( - 4285540224) * X^4 * Z^2 + (2142770112) * X^4 * Z + ( - 2142770112) * X^2 * Y^4 + ( - 2063408256) * X^2 * Y^2 * Z^3 + ( - 4285540224) * X^2 * Y^2 * Z + ( - 47029248) * X^2 * Z^6 + ( - 1269789696) * X^2 * Z^5 + ( - 6348948480) * X^2 * Z^4 + (11428107264) * X^2 * Z^3 + (714256704) * Y^6 + ( - 396809280) * Y^4 * Z^3 + (4285540224) * Y^4 * Z^2 + (2142770112) * Y^4 * Z + (47029248) * Y^2 * Z^6 + ( - 1269789696) * Y^2 * Z^5 + (6348948480) * Y^2 * Z^4 + (11428107264) * Y^2 * Z^3 + (2322432) * Z^9 + ( - 376233984) * Z^7 + (15237476352) * Z^5 ]
1391Args:[ U^3 - 3 * U * V^2 - 3 * U + X, - 3 * U^2 * V + V^3 - 3 * V + Y, - 3 * U^2 + 3 * V^2 + Z ][ 3 * U^2 - 3 * V^2 - Z, 6 * U * V^2 - U * Z + 9 * U - 3 * X, 2 * V^3 + V * Z + 3 * V - Y, 4 * U * V * Z - 3 * U * Y + 3 * V * X, 9 * U * X + 6 * V^2 * Z - 9 * V * Y + Z^2 - 9 * Z, 9 * U * V * Y - 2 * U * Z^2 + 18 * U * Z - 9 * V^2 * X - 6 * X * Z, 27 * U * Y^2 - 8 * U * Z^3 + 72 * U * Z^2 - 36 * V^2 * X * Z - 27 * V * X * Y - 24 * X * Z^2, 18 * V^2 * Z^2 + 54 * V^2 * Z - 54 * V * Y * Z - 27 * X^2 + 27 * Y^2 + Z^3 - 18 * Z^2 + 81 * Z, 243 * V^2 * X^2 - 243 * V^2 * Y^2 - 1296 * V^2 * Z - 108 * V * Y * Z^2 + 324 * V * Y * Z + 108 * X^2 * Z + 648 * X^2 + 135 * Y^2 * Z - 648 * Y^2 - 4 * Z^4 + 48 * Z^3 + 108 * Z^2 - 1944 * Z, 54 * V^2 * Y * Z + 27 * V * X^2 - 27 * V * Y^2 + 8 * V * Z^3 + 72 * V * Z^2 - 9 * Y * Z^2 - 27 * Y * Z, 27 * V * X^2 * Z + 81 * V * X^2 + 135 * V * Y^2 * Z - 81 * V * Y^2 + 8 * V * Z^4 + 96 * V * Z^3 + 216 * V * Z^2 + 81 * X^2 * Y - 81 * Y^3 - 12 * Y * Z^3 - 324 * Y * Z, 4374 * V * X^2 * Y + 8748 * V * Y^3 * Z - 4374 * V * Y^3 + 648 * V * Y * Z^4 + 5184 * V * Y * Z^3 + 17496 * V * Y * Z^2 - 729 * X^4 + 5832 * X^2 * Y^2 - 189 * X^2 * Z^3 - 2430 * X^2 * Z^2 + 2187 * X^2 * Z - 5103 * Y^4 - 945 * Y^2 * Z^3 + 972 * Y^2 * Z^2 - 19683 * Y^2 * Z + 8 * Z^6 - 72 * Z^5 - 648 * Z^4 + 5832 * Z^3, 8748 * V * Y^3 * Z^2 + 648 * V * Y * Z^5 + 5832 * V * Y * Z^4 + 17496 * V * Y * Z^3 + 17496 * V * Y * Z^2 - 729 * X^4 * Z - 2187 * X^4 + 5832 * X^2 * Y^2 * Z + 4374 * X^2 * Y^2 - 189 * X^2 * Z^4 - 2997 * X^2 * Z^3 - 5103 * X^2 * Z^2 + 6561 * X^2 * Z - 5103 * Y^4 * Z - 2187 * Y^4 - 945 * Y^2 * Z^4 + 81 * Y^2 * Z^3 - 16767 * Y^2 * Z^2 - 6561 * Y^2 * Z + 8 * Z^7 - 48 * Z^6 - 864 * Z^5 + 3888 * Z^4 + 17496 * Z^3, 19683 * X^6 - 59049 * X^4 * Y^2 + 10935 * X^4 * Z^3 + 118098 * X^4 * Z^2 - 59049 * X^4 * Z + 59049 * X^2 * Y^4 + 56862 * X^2 * Y^2 * Z^3 + 118098 * X^2 * Y^2 * Z + 1296 * X^2 * Z^6 + 34992 * X^2 * Z^5 + 174960 * X^2 * Z^4 - 314928 * X^2 * Z^3 - 19683 * Y^6 + 10935 * Y^4 * Z^3 - 118098 * Y^4 * Z^2 - 59049 * Y^4 * Z - 1296 * Y^2 * Z^6 + 34992 * Y^2 * Z^5 - 174960 * Y^2 * Z^4 - 314928 * Y^2 * Z^3 - 64 * Z^9 + 10368 * Z^7 - 419904 * Z^5, 2187 * V * X^4 + 69984 * V * X^2 + 8748 * V * Y^4 * Z - 2187 * V * Y^4 + 648 * V * Y^2 * Z^4 + 3240 * V * Y^2 * Z^3 - 11664 * V * Y^2 * Z^2 + 139968 * V * Y^2 * Z - 69984 * V * Y^2 - 192 * V * Z^6 - 3456 * V * Z^5 - 15552 * V * Z^4 + 20736 * V * Z^3 + 186624 * V * Z^2 - 729 * X^4 * Y + 5832 * X^2 * Y^3 - 189 * X^2 * Y * Z^3 - 7047 * X^2 * Y * Z^2 - 23328 * X^2 * Y * Z + 69984 * X^2 * Y - 5103 * Y^5 - 945 * Y^3 * Z^3 + 1215 * Y^3 * Z^2 + 5832 * Y^3 * Z - 69984 * Y^3 + 8 * Y * Z^6 + 288 * Y * Z^5 + 216 * Y * Z^4 + 5184 * Y * Z^3 + 93312 * Y * Z^2 - 279936 * Y * Z ]
1392WARNING: Test 3 - staple
1393------------------- CASE 1 -------------------
1394Condition:
1395 Green list: [ ]
1396 Red list: [ U - 1 ]
1397 Basis: [ (U - 1) * X, ( - U + 1) * Y ]
1398------------------- CASE 2 -------------------
1399Condition:
1400 Green list: [ U - 1 ]
1401 Red list: [ ]
1402 Basis: [ (1) * X + (1) * Y ]
1403WARNING: Test 4 - staple
1404------------------- CASE 1 -------------------
1405Condition:
1406 Green list: [ U ]
1407 Red list: [ ]
1408 Basis: [ (1) * X, (1) * Y ]
1409------------------- CASE 2 -------------------
1410Condition:
1411 Green list: [ ]
1412 Red list: [ U, U - 1 ]
1413 Basis: [ (U^2 - U) * X, (U - 1) * Y ]
1414------------------- CASE 3 -------------------
1415Condition:
1416 Green list: [ U - 1 ]
1417 Red list: [ U ]
1418 Basis: [ (1) * X + (1) * Y ]
1419WARNING: Test 5 - a small robot example
1420------------------- CASE 1 -------------------
1421Condition:
1422 Green list: [ ]
1423 Red list: [ L3, A^2 + B^2, L2, A ]
1424 Basis: [ ( - 2 * A * L2 * L3) * S2 + ( - 2 * A^2 * L2 - 2 * B^2 * L2) * S1 + (A^2 * B + B^3 + B * L2^2 - B * L3^2), ( - 2 * L2 * L3) * C2 + (A^2 + B^2 - L2^2 - L3^2), ( - 2 * A * L2) * C1 + ( - 2 * B * L2) * S1 + (A^2 + B^2 + L2^2 - L3^2), (4 * A^2 * L2^2 + 4 * B^2 * L2^2) * S1^2 + ( - 4 * A^2 * B * L2 - 4 * B^3 * L2 - 4 * B * L2^3 + 4 * B * L2 * L3^2) * S1 + (A^4 + 2 * A^2 * B^2 - 2 * A^2 * L2^2 - 2 * A^2 * L3^2 + B^4 + 2 * B^2 * L2^2 - 2 * B^2 * L3^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4) ]
1425------------------- CASE 2 -------------------
1426Condition:
1427 Green list: [ A^2 + B^2 ]
1428 Red list: [ L3, A^2 * B + B^3 + B * L2^2 - B * L3^2, L2, A ]
1429 Basis: [ (4 * A * B * L2^3 * L3 - 4 * A * B * L2 * L3^3) * S2 + ( - 2 * B^2 * L2^4 + 4 * B^2 * L2^2 * L3^2 - 2 * B^2 * L3^4), ( - 2 * L2 * L3) * C2 + ( - L2^2 - L3^2), (4 * A * L2^3 - 4 * A * L2 * L3^2) * C1 + (4 * B^2 * L2^2 - L2^4 + 2 * L2^2 * L3^2 - L3^4), ( - 4 * B * L2^3 + 4 * B * L2 * L3^2) * S1 + (4 * B^2 * L2^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4) ]
1430------------------- CASE 3 -------------------
1431Condition:
1432 Green list: [ A^2 + B^2, L2^2 - L3^2 ]
1433 Red list: [ L3, A, L2, A^4 + 2 * A^2 * B^2 - 2 * A^2 * L2^2 - 2 * A^2 * L3^2 + B^4 + 2 * B^2 * L2^2 - 2 * B^2 * L3^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4 ]
1434 Basis: [ (4 * B^2 * L3^2) ]
1435------------------- CASE 4 -------------------
1436Condition:
1437 Green list: [ A ]
1438 Red list: [ L3, B, L2 ]
1439 Basis: [ (4 * B^2 * L2^2) * C1^2 + (B^4 - 2 * B^2 * L2^2 - 2 * B^2 * L3^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4), (2 * B * L2 * L3) * S2 + ( - 2 * B^2 * L2) * C1 + (0), ( - 2 * L2 * L3) * C2 + (0) * C1 + (B^2 - L2^2 - L3^2), ( - 2 * B * L2) * S1 + (B^2 + L2^2 - L3^2) ]
1440------------------- CASE 5 -------------------
1441Condition:
1442 Green list: [ A, B ]
1443 Red list: [ L3, L2, A^2 + B^2 + L2^2 - L3^2 ]
1444 Basis: [ (L2^2 - L3^2) ]
1445------------------- CASE 6 -------------------
1446Condition:
1447 Green list: [ A, B, L2^2 - L3^2 ]
1448 Red list: [ L3, L2 ]
1449 Basis: [ (1) * C1^2 + (1) * S1^2 + ( - 1), (L3) * S2 + (0) * C1 + (0) * S1, (L3) * C2 + (0) * C1 + (0) * S1 + (L2) ]
1450WARNING: Test 6 - Circle of Apollonius
1451------------------- CASE 1 -------------------
1452Condition:
1453 Green list: [ U2, U1 ]
1454 Red list: [ ]
1455 Basis: [ (2) * X1 + (0), (2) * X2 + (0), (2) * X3 + (0), (2) * X4 + (0), ( - 4) * X6^2 + (8) * X6 * X8 + (0) * X8 + (0), (4) * S * X5^2 + ( - 8) * S * X5 * X7 + (0) * S * X7 + (0) * S * X8 + (0) * S + ( - 4) ]
1456------------------- CASE 2 -------------------
1457Condition:
1458 Green list: [ U2 ]
1459 Red list: [ U1 ]
1460 Basis: [ ( - 4 * U1^3) ]
1461------------------- CASE 3 -------------------
1462Condition:
1463 Green list: [ U1 ]
1464 Red list: [ U2 ]
1465 Basis: [ (4 * U2^2) ]
1466------------------- CASE 4 -------------------
1467Condition:
1468 Green list: [ ]
1469 Red list: [ U1, U2, U1^2 - U2^2, U1^2 + U2^2 ]
1470 Basis: [ (2) * X1 + ( - U1), (2) * X2 + ( - U2), (2) * X3 + ( - U1), (2) * X4 + ( - U2), (U1^2 * U2 + U2^3) * X5 + ( - U1 * U2^3), ( - U1^2 - U2^2) * X6 + (U1^2 * U2), ( - 4 * U1^5 + 4 * U1 * U2^4) * X7 + (U1^6 + 2 * U1^4 * U2^2 - 3 * U1^2 * U2^4), ( - 4 * U1^4 * U2 + 4 * U2^5) * X8 + (3 * U1^4 * U2^2 - 2 * U1^2 * U2^4 - U2^6), (2 * U1^6 * U2^2 - 2 * U1^4 * U2^4) * S + (4 * U1^6 - 4 * U1^2 * U2^4) ]
1471------------------- CASE 5 -------------------
1472Condition:
1473 Green list: [ U1^2 - U2^2 ]
1474 Red list: [ U1, U1^2 + U2^2, U2 ]
1475 Basis: [ (2) * X1 + ( - U1), (2) * X2 + ( - U2), (2) * X3 + ( - U1), (2) * X4 + ( - U2), (2 * U2^3) * X5 + ( - U1 * U2^3), ( - 2 * U2^2) * X6 + (U2^3), (4 * U1) * X7 + ( - 4 * U2) * X8 + (0), ( - 8 * U2^5) * S * X8 + (2 * U2^6) * S + ( - 8 * U2^4) ]
1476------------------- CASE 6 -------------------
1477Condition:
1478 Green list: [ U1^2 + U2^2 ]
1479 Red list: [ U1, U2 ]
1480 Basis: [ ( - U2^3) ]
1481WARNING: Test 7
1482
1483; in: LAMBDA NIL
1484; (SETF CGB-LISP::FL
1485; (CDR
1486; (PARSE:PARSE-STRING-TO-SORTED-ALIST
1487; "[a^2*x^2*y+b*x^2*y+a^3*b*x*y+a^3*c*x*y,c^2*a*x^2+c^2*b*x^2+b*y+4]"
1488; '(CGB-LISP::X CGB-LISP::Y CGB-LISP::A CGB-LISP::B CGB-LISP::C))))
1489; ==>
1490; (SETQ CGB-LISP::FL
1491; (CDR
1492; (PARSE:PARSE-STRING-TO-SORTED-ALIST
1493; "[a^2*x^2*y+b*x^2*y+a^3*b*x*y+a^3*c*x*y,c^2*a*x^2+c^2*b*x^2+b*y+4]"
1494; '(CGB-LISP::X CGB-LISP::Y CGB-LISP::A CGB-LISP::B CGB-LISP::C))))
1495;
1496; caught WARNING:
1497; undefined variable: FL
1498
1499;
1500; caught WARNING:
1501; This variable is undefined:
1502; FL
1503;
1504; compilation unit finished
1505; caught 2 WARNING conditions
1506
1507; in: LAMBDA NIL
1508; (SETF CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 2))
1509; ==>
1510; (SETQ CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 2))
1511;
1512; caught WARNING:
1513; undefined variable: CFL
1514
1515; (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 2)
1516;
1517; caught WARNING:
1518; undefined variable: FL
1519
1520;
1521; caught WARNING:
1522; These variables are undefined:
1523; CFL FL
1524;
1525; compilation unit finished
1526; caught 3 WARNING conditions
1527------------------- CASE 1 -------------------
1528Condition:
1529 Green list: [ ]
1530 Red list: [ A * C^2 + B * C^2, A^2 + B ]
1531 Basis: [ (A^2 + B) * X^2 * Y + (A^3 * B + A^3 * C) * X * Y, (A * C^2 + B * C^2) * X^2 + (B) * Y + (4) ]
1532------------------- CASE 2 -------------------
1533Condition:
1534 Green list: [ A^2 + B ]
1535 Red list: [ A * C^2 + B * C^2, A^3 * B + A^3 * C ]
1536 Basis: [ (A^3 * B + A^3 * C) * X * Y, (A * C^2 + B * C^2) * X^2 + (B) * Y + (4) ]
1537------------------- CASE 3 -------------------
1538Condition:
1539 Green list: [ B + C, A^2 - C ]
1540 Red list: [ A * C^2 + B * C^2 ]
1541 Basis: [ (A * C^2 + B * C^2) * X^2 + (B) * Y + (4) ]
1542------------------- CASE 4 -------------------
1543Condition:
1544 Green list: [ A * C^2 + B * C^2 ]
1545 Red list: [ B, A^2 + B ]
1546 Basis: [ (A^2 + B) * X^2 * Y + (A^3 * B + A^3 * C) * X * Y, (B) * Y + (4) ]
1547------------------- CASE 5 -------------------
1548Condition:
1549 Green list: [ A^2 + B, B * C^2 + C^2, A * C^2 - C^2 ]
1550 Red list: [ B, A^3 * B + A^3 * C ]
1551 Basis: [ (A^3 * B + A^3 * C) * X * Y, (B) * Y + (4) ]
1552------------------- CASE 6 -------------------
1553Condition:
1554 Green list: [ C - 1, B + 1, A - 1 ]
1555 Red list: [ B ]
1556 Basis: [ (B) * Y + (4) ]
1557------------------- CASE 7 -------------------
1558Condition:
1559 Green list: [ B, C^2 ]
1560 Red list: [ 4, A^2 + B ]
1561 Basis: [ (A^2 + B) * X^2 * Y + (A^3 * B + A^3 * C) * X * Y, (4) ]
1562------------------- CASE 8 -------------------
1563Condition:
1564 Green list: [ B, A * C^2, A^2 ]
1565 Red list: [ 4 ]
1566 Basis: [ (4) ]
1567WARNING: Test 8
1568
1569; in: LAMBDA NIL
1570; (SETF CGB-LISP::FL
1571; (CDR
1572; (PARSE:PARSE-STRING-TO-SORTED-ALIST "[a^2*x+5*a]"
1573; '(CGB-LISP::X CGB-LISP::A))))
1574; ==>
1575; (SETQ CGB-LISP::FL
1576; (CDR
1577; (PARSE:PARSE-STRING-TO-SORTED-ALIST "[a^2*x+5*a]"
1578; '(CGB-LISP::X CGB-LISP::A))))
1579;
1580; caught WARNING:
1581; undefined variable: FL
1582
1583;
1584; caught WARNING:
1585; This variable is undefined:
1586; FL
1587;
1588; compilation unit finished
1589; caught 2 WARNING conditions
1590
1591; in: LAMBDA NIL
1592; (SETF CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 1))
1593; ==>
1594; (SETQ CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 1))
1595;
1596; caught WARNING:
1597; undefined variable: CFL
1598
1599; (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 1)
1600;
1601; caught WARNING:
1602; undefined variable: FL
1603
1604;
1605; caught WARNING:
1606; These variables are undefined:
1607; CFL FL
1608;
1609; compilation unit finished
1610; caught 3 WARNING conditions
1611------------------- CASE 1 -------------------
1612Condition:
1613 Green list: [ ]
1614 Red list: [ A^2 ]
1615 Basis: [ (A^2) * X + (5 * A) ]
1616------------------- CASE 2 -------------------
1617Condition:
1618 Green list: [ A^2 ]
1619 Red list: [ ]
1620 Basis: [ ]
1621WARNING: Test 9 - the discriminant of a quadratic polynomial
1622------------------- CASE 1 -------------------
1623Condition:
1624 Green list: [ ]
1625 Red list: [ A, 4 * A * C - B^2 ]
1626 Basis: [ (4 * A * C - B^2) ]
1627------------------- CASE 2 -------------------
1628Condition:
1629 Green list: [ 4 * A * C - B^2 ]
1630 Red list: [ A ]
1631 Basis: [ (2 * A) * X + (B) ]
1632WARNING: Test 10 - the discriminant of a cubic polynomial
1633------------------- CASE 1 -------------------
1634Condition:
1635 Green list: [ ]
1636 Red list: [ P, 4 * P^3 + 27 * Q^2 ]
1637 Basis: [ ( - 4 * P^3 - 27 * Q^2) ]
1638------------------- CASE 2 -------------------
1639Condition:
1640 Green list: [ 4 * P^3 + 27 * Q^2 ]
1641 Red list: [ P ]
1642 Basis: [ (2 * P) * X + (3 * Q) ]
1643------------------- CASE 3 -------------------
1644Condition:
1645 Green list: [ P ]
1646 Red list: [ Q ]
1647 Basis: [ (3 * Q) ]
1648------------------- CASE 4 -------------------
1649Condition:
1650 Green list: [ P, Q ]
1651 Red list: [ ]
1652 Basis: [ (3) * X^2 + (0) ]
1653WARNING: Test 11 - the discriminant of a quartic polynomial
1654------------------- CASE 1 -------------------
1655Condition:
1656 Green list: [ ]
1657 Red list: [ 16 * P^4 * R - 4 * P^3 * Q^2 - 128 * P^2 * R^2 + 144 * P * Q^2 * R - 27 * Q^4 + 256 * R^3, P, 2 * P^3 - 8 * P * R + 9 * Q^2 ]
1658 Basis: [ (16 * P^6 * R - 4 * P^5 * Q^2 - 128 * P^4 * R^2 + 144 * P^3 * Q^2 * R - 27 * P^2 * Q^4 + 256 * P^2 * R^3) ]
1659------------------- CASE 2 -------------------
1660Condition:
1661 Green list: [ 16 * P^4 * R - 4 * P^3 * Q^2 - 128 * P^2 * R^2 + 144 * P * Q^2 * R - 27 * Q^4 + 256 * R^3 ]
1662 Red list: [ P, 2 * P^3 - 8 * P * R + 9 * Q^2 ]
1663 Basis: [ ( - 2 * P^3 + 8 * P * R - 9 * Q^2) * X + ( - P^2 * Q - 12 * Q * R) ]
1664------------------- CASE 3 -------------------
1665Condition:
1666 Green list: [ 2 * P^3 - 8 * P * R + 9 * Q^2 ]
1667 Red list: [ P, P^2 * Q + 12 * Q * R ]
1668 Basis: [ ( - P^2 * Q - 12 * Q * R) ]
1669------------------- CASE 4 -------------------
1670Condition:
1671 Green list: [ 2 * P^3 - 8 * P * R + 9 * Q^2, P^2 * Q + 12 * Q * R, 32 * P * Q * R - 9 * Q^3, 3 * P * Q^3 + 128 * Q * R^2, 27 * Q^5 + 4096 * Q * R^3, 8 * P^2 * R - 3 * P * Q^2 - 32 * R^2 ]
1672 Red list: [ P ]
1673 Basis: [ (2 * P) * X^2 + (3 * Q) * X + (4 * R) ]
1674------------------- CASE 5 -------------------
1675Condition:
1676 Green list: [ P ]
1677 Red list: [ Q, 72 * P * Q^2 * R - 27 * Q^4 + 256 * R^3 ]
1678 Basis: [ (27 * Q^4 - 256 * R^3) ]
1679------------------- CASE 6 -------------------
1680Condition:
1681 Green list: [ P, 27 * Q^4 - 256 * R^3 ]
1682 Red list: [ Q ]
1683 Basis: [ (3 * Q) * X + (4 * R) ]
1684------------------- CASE 7 -------------------
1685Condition:
1686 Green list: [ P, Q ]
1687 Red list: [ R ]
1688 Basis: [ (4 * R) ]
1689------------------- CASE 8 -------------------
1690Condition:
1691 Green list: [ P, Q, R ]
1692 Red list: [ ]
1693 Basis: [ (4) * X^3 + (0) * X + (0) ]WARNING: Test 1
1694------------------- CASE 1 -------------------
1695Condition:
1696 Green list: [ ]
1697 Red list: [ ]
1698 Basis: [ (4) * X + (5) * Y, ( - 10) * Y^2 ]
1699WARNING: Test 2 - Enneper
1700------------------- CASE 1 -------------------
1701Condition:
1702 Green list: [ ]
1703 Red list: [ ]
1704 Basis: [ ( - 3) * U^2 + (3) * V^2 + (1) * Z, (2) * V^3 + (1) * V * Z + (3) * V + ( - 1) * Y, ( - 6) * U * V^2 + (1) * U * Z + ( - 9) * U + (3) * X, (4) * U * V * Z + ( - 3) * U * Y + (3) * V * X, (9) * U * V * Y + ( - 2) * U * Z^2 + (18) * U * Z + ( - 9) * V^2 * X + ( - 6) * X * Z, ( - 27) * U * Y^2 + (8) * U * Z^3 + ( - 72) * U * Z^2 + (36) * V^2 * X * Z + (27) * V * X * Y + (24) * X * Z^2, (34992) * V^2 * X^2 + ( - 34992) * V^2 * Y^2 + ( - 186624) * V^2 * Z + ( - 15552) * V * Y * Z^2 + (46656) * V * Y * Z + (15552) * X^2 * Z + (93312) * X^2 + (19440) * Y^2 * Z + ( - 93312) * Y^2 + ( - 576) * Z^4 + (6912) * Z^3 + (15552) * Z^2 + ( - 279936) * Z, (139968) * U * X + (93312) * V^2 * Z + ( - 139968) * V * Y + (15552) * Z^2 + ( - 139968) * Z, (105815808) * V^2 * Y * Z + (52907904) * V * X^2 + ( - 52907904) * V * Y^2 + (15676416) * V * Z^3 + (141087744) * V * Z^2 + ( - 17635968) * Y * Z^2 + ( - 52907904) * Y * Z, (31104) * V^2 * Z^2 + (93312) * V^2 * Z + ( - 93312) * V * Y * Z + ( - 46656) * X^2 + (46656) * Y^2 + (1728) * Z^3 + ( - 31104) * Z^2 + (139968) * Z, (8817984) * V * X^2 * Z + (26453952) * V * X^2 + (44089920) * V * Y^2 * Z + ( - 26453952) * V * Y^2 + (2612736) * V * Z^4 + (31352832) * V * Z^3 + (70543872) * V * Z^2 + (26453952) * X^2 * Y + ( - 26453952) * Y^3 + ( - 3919104) * Y * Z^3 + ( - 105815808) * Y * Z, ( - 158723712) * V * X^2 * Y + ( - 317447424) * V * Y^3 * Z + (158723712) * V * Y^3 + ( - 23514624) * V * Y * Z^4 + ( - 188116992) * V * Y * Z^3 + ( - 634894848) * V * Y * Z^2 + (26453952) * X^4 + ( - 211631616) * X^2 * Y^2 + (6858432) * X^2 * Z^3 + (88179840) * X^2 * Z^2 + ( - 79361856) * X^2 * Z + (185177664) * Y^4 + (34292160) * Y^2 * Z^3 + ( - 35271936) * Y^2 * Z^2 + (714256704) * Y^2 * Z + ( - 290304) * Z^6 + (2612736) * Z^5 + (23514624) * Z^4 + ( - 211631616) * Z^3, ( - 317447424) * V * Y^3 * Z^2 + ( - 23514624) * V * Y * Z^5 + ( - 211631616) * V * Y * Z^4 + ( - 634894848) * V * Y * Z^3 + ( - 634894848) * V * Y * Z^2 + (26453952) * X^4 * Z + (79361856) * X^4 + ( - 211631616) * X^2 * Y^2 * Z + ( - 158723712) * X^2 * Y^2 + (6858432) * X^2 * Z^4 + (108755136) * X^2 * Z^3 + (185177664) * X^2 * Z^2 + ( - 238085568) * X^2 * Z + (185177664) * Y^4 * Z + (79361856) * Y^4 + (34292160) * Y^2 * Z^4 + ( - 2939328) * Y^2 * Z^3 + (608440896) * Y^2 * Z^2 + (238085568) * Y^2 * Z + ( - 290304) * Z^7 + (1741824) * Z^6 + (31352832) * Z^5 + ( - 141087744) * Z^4 + ( - 634894848) * Z^3, (79361856) * V * X^4 + (2539579392) * V * X^2 + (317447424) * V * Y^4 * Z + ( - 79361856) * V * Y^4 + (23514624) * V * Y^2 * Z^4 + (117573120) * V * Y^2 * Z^3 + ( - 423263232) * V * Y^2 * Z^2 + (5079158784) * V * Y^2 * Z + ( - 2539579392) * V * Y^2 + ( - 6967296) * V * Z^6 + ( - 125411328) * V * Z^5 + ( - 564350976) * V * Z^4 + (752467968) * V * Z^3 + (6772211712) * V * Z^2 + ( - 26453952) * X^4 * Y + (211631616) * X^2 * Y^3 + ( - 6858432) * X^2 * Y * Z^3 + ( - 255721536) * X^2 * Y * Z^2 + ( - 846526464) * X^2 * Y * Z + (2539579392) * X^2 * Y + ( - 185177664) * Y^5 + ( - 34292160) * Y^3 * Z^3 + (44089920) * Y^3 * Z^2 + (211631616) * Y^3 * Z + ( - 2539579392) * Y^3 + (290304) * Y * Z^6 + (10450944) * Y * Z^5 + (7838208) * Y * Z^4 + (188116992) * Y * Z^3 + (3386105856) * Y * Z^2 + ( - 10158317568) * Y * Z, ( - 714256704) * X^6 + (2142770112) * X^4 * Y^2 + ( - 396809280) * X^4 * Z^3 + ( - 4285540224) * X^4 * Z^2 + (2142770112) * X^4 * Z + ( - 2142770112) * X^2 * Y^4 + ( - 2063408256) * X^2 * Y^2 * Z^3 + ( - 4285540224) * X^2 * Y^2 * Z + ( - 47029248) * X^2 * Z^6 + ( - 1269789696) * X^2 * Z^5 + ( - 6348948480) * X^2 * Z^4 + (11428107264) * X^2 * Z^3 + (714256704) * Y^6 + ( - 396809280) * Y^4 * Z^3 + (4285540224) * Y^4 * Z^2 + (2142770112) * Y^4 * Z + (47029248) * Y^2 * Z^6 + ( - 1269789696) * Y^2 * Z^5 + (6348948480) * Y^2 * Z^4 + (11428107264) * Y^2 * Z^3 + (2322432) * Z^9 + ( - 376233984) * Z^7 + (15237476352) * Z^5 ]
1705Args:[ U^3 - 3 * U * V^2 - 3 * U + X, - 3 * U^2 * V + V^3 - 3 * V + Y, - 3 * U^2 + 3 * V^2 + Z ][ 3 * U^2 - 3 * V^2 - Z, 6 * U * V^2 - U * Z + 9 * U - 3 * X, 2 * V^3 + V * Z + 3 * V - Y, 4 * U * V * Z - 3 * U * Y + 3 * V * X, 9 * U * X + 6 * V^2 * Z - 9 * V * Y + Z^2 - 9 * Z, 9 * U * V * Y - 2 * U * Z^2 + 18 * U * Z - 9 * V^2 * X - 6 * X * Z, 27 * U * Y^2 - 8 * U * Z^3 + 72 * U * Z^2 - 36 * V^2 * X * Z - 27 * V * X * Y - 24 * X * Z^2, 18 * V^2 * Z^2 + 54 * V^2 * Z - 54 * V * Y * Z - 27 * X^2 + 27 * Y^2 + Z^3 - 18 * Z^2 + 81 * Z, 243 * V^2 * X^2 - 243 * V^2 * Y^2 - 1296 * V^2 * Z - 108 * V * Y * Z^2 + 324 * V * Y * Z + 108 * X^2 * Z + 648 * X^2 + 135 * Y^2 * Z - 648 * Y^2 - 4 * Z^4 + 48 * Z^3 + 108 * Z^2 - 1944 * Z, 54 * V^2 * Y * Z + 27 * V * X^2 - 27 * V * Y^2 + 8 * V * Z^3 + 72 * V * Z^2 - 9 * Y * Z^2 - 27 * Y * Z, 27 * V * X^2 * Z + 81 * V * X^2 + 135 * V * Y^2 * Z - 81 * V * Y^2 + 8 * V * Z^4 + 96 * V * Z^3 + 216 * V * Z^2 + 81 * X^2 * Y - 81 * Y^3 - 12 * Y * Z^3 - 324 * Y * Z, 4374 * V * X^2 * Y + 8748 * V * Y^3 * Z - 4374 * V * Y^3 + 648 * V * Y * Z^4 + 5184 * V * Y * Z^3 + 17496 * V * Y * Z^2 - 729 * X^4 + 5832 * X^2 * Y^2 - 189 * X^2 * Z^3 - 2430 * X^2 * Z^2 + 2187 * X^2 * Z - 5103 * Y^4 - 945 * Y^2 * Z^3 + 972 * Y^2 * Z^2 - 19683 * Y^2 * Z + 8 * Z^6 - 72 * Z^5 - 648 * Z^4 + 5832 * Z^3, 8748 * V * Y^3 * Z^2 + 648 * V * Y * Z^5 + 5832 * V * Y * Z^4 + 17496 * V * Y * Z^3 + 17496 * V * Y * Z^2 - 729 * X^4 * Z - 2187 * X^4 + 5832 * X^2 * Y^2 * Z + 4374 * X^2 * Y^2 - 189 * X^2 * Z^4 - 2997 * X^2 * Z^3 - 5103 * X^2 * Z^2 + 6561 * X^2 * Z - 5103 * Y^4 * Z - 2187 * Y^4 - 945 * Y^2 * Z^4 + 81 * Y^2 * Z^3 - 16767 * Y^2 * Z^2 - 6561 * Y^2 * Z + 8 * Z^7 - 48 * Z^6 - 864 * Z^5 + 3888 * Z^4 + 17496 * Z^3, 19683 * X^6 - 59049 * X^4 * Y^2 + 10935 * X^4 * Z^3 + 118098 * X^4 * Z^2 - 59049 * X^4 * Z + 59049 * X^2 * Y^4 + 56862 * X^2 * Y^2 * Z^3 + 118098 * X^2 * Y^2 * Z + 1296 * X^2 * Z^6 + 34992 * X^2 * Z^5 + 174960 * X^2 * Z^4 - 314928 * X^2 * Z^3 - 19683 * Y^6 + 10935 * Y^4 * Z^3 - 118098 * Y^4 * Z^2 - 59049 * Y^4 * Z - 1296 * Y^2 * Z^6 + 34992 * Y^2 * Z^5 - 174960 * Y^2 * Z^4 - 314928 * Y^2 * Z^3 - 64 * Z^9 + 10368 * Z^7 - 419904 * Z^5, 2187 * V * X^4 + 69984 * V * X^2 + 8748 * V * Y^4 * Z - 2187 * V * Y^4 + 648 * V * Y^2 * Z^4 + 3240 * V * Y^2 * Z^3 - 11664 * V * Y^2 * Z^2 + 139968 * V * Y^2 * Z - 69984 * V * Y^2 - 192 * V * Z^6 - 3456 * V * Z^5 - 15552 * V * Z^4 + 20736 * V * Z^3 + 186624 * V * Z^2 - 729 * X^4 * Y + 5832 * X^2 * Y^3 - 189 * X^2 * Y * Z^3 - 7047 * X^2 * Y * Z^2 - 23328 * X^2 * Y * Z + 69984 * X^2 * Y - 5103 * Y^5 - 945 * Y^3 * Z^3 + 1215 * Y^3 * Z^2 + 5832 * Y^3 * Z - 69984 * Y^3 + 8 * Y * Z^6 + 288 * Y * Z^5 + 216 * Y * Z^4 + 5184 * Y * Z^3 + 93312 * Y * Z^2 - 279936 * Y * Z ]
1706WARNING: Test 3 - staple
1707------------------- CASE 1 -------------------
1708Condition:
1709 Green list: [ ]
1710 Red list: [ U - 1 ]
1711 Basis: [ (U - 1) * X, ( - U + 1) * Y ]
1712------------------- CASE 2 -------------------
1713Condition:
1714 Green list: [ U - 1 ]
1715 Red list: [ ]
1716 Basis: [ (1) * X + (1) * Y ]
1717WARNING: Test 4 - staple
1718------------------- CASE 1 -------------------
1719Condition:
1720 Green list: [ U ]
1721 Red list: [ ]
1722 Basis: [ (1) * X, (1) * Y ]
1723------------------- CASE 2 -------------------
1724Condition:
1725 Green list: [ ]
1726 Red list: [ U, U - 1 ]
1727 Basis: [ (U^2 - U) * X, (U - 1) * Y ]
1728------------------- CASE 3 -------------------
1729Condition:
1730 Green list: [ U - 1 ]
1731 Red list: [ U ]
1732 Basis: [ (1) * X + (1) * Y ]
1733WARNING: Test 5 - a small robot example
1734------------------- CASE 1 -------------------
1735Condition:
1736 Green list: [ ]
1737 Red list: [ L3, A^2 + B^2, L2, A ]
1738 Basis: [ ( - 2 * A * L2 * L3) * S2 + ( - 2 * A^2 * L2 - 2 * B^2 * L2) * S1 + (A^2 * B + B^3 + B * L2^2 - B * L3^2), ( - 2 * L2 * L3) * C2 + (A^2 + B^2 - L2^2 - L3^2), ( - 2 * A * L2) * C1 + ( - 2 * B * L2) * S1 + (A^2 + B^2 + L2^2 - L3^2), (4 * A^2 * L2^2 + 4 * B^2 * L2^2) * S1^2 + ( - 4 * A^2 * B * L2 - 4 * B^3 * L2 - 4 * B * L2^3 + 4 * B * L2 * L3^2) * S1 + (A^4 + 2 * A^2 * B^2 - 2 * A^2 * L2^2 - 2 * A^2 * L3^2 + B^4 + 2 * B^2 * L2^2 - 2 * B^2 * L3^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4) ]
1739------------------- CASE 2 -------------------
1740Condition:
1741 Green list: [ A^2 + B^2 ]
1742 Red list: [ L3, A^2 * B + B^3 + B * L2^2 - B * L3^2, L2, A ]
1743 Basis: [ (4 * A * B * L2^3 * L3 - 4 * A * B * L2 * L3^3) * S2 + ( - 2 * B^2 * L2^4 + 4 * B^2 * L2^2 * L3^2 - 2 * B^2 * L3^4), ( - 2 * L2 * L3) * C2 + ( - L2^2 - L3^2), (4 * A * L2^3 - 4 * A * L2 * L3^2) * C1 + (4 * B^2 * L2^2 - L2^4 + 2 * L2^2 * L3^2 - L3^4), ( - 4 * B * L2^3 + 4 * B * L2 * L3^2) * S1 + (4 * B^2 * L2^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4) ]
1744------------------- CASE 3 -------------------
1745Condition:
1746 Green list: [ A^2 + B^2, L2^2 - L3^2 ]
1747 Red list: [ L3, A, L2, A^4 + 2 * A^2 * B^2 - 2 * A^2 * L2^2 - 2 * A^2 * L3^2 + B^4 + 2 * B^2 * L2^2 - 2 * B^2 * L3^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4 ]
1748 Basis: [ (4 * B^2 * L3^2) ]
1749------------------- CASE 4 -------------------
1750Condition:
1751 Green list: [ A ]
1752 Red list: [ L3, B, L2 ]
1753 Basis: [ (4 * B^2 * L2^2) * C1^2 + (B^4 - 2 * B^2 * L2^2 - 2 * B^2 * L3^2 + L2^4 - 2 * L2^2 * L3^2 + L3^4), (2 * B * L2 * L3) * S2 + ( - 2 * B^2 * L2) * C1 + (0), ( - 2 * L2 * L3) * C2 + (0) * C1 + (B^2 - L2^2 - L3^2), ( - 2 * B * L2) * S1 + (B^2 + L2^2 - L3^2) ]
1754------------------- CASE 5 -------------------
1755Condition:
1756 Green list: [ A, B ]
1757 Red list: [ L3, L2, A^2 + B^2 + L2^2 - L3^2 ]
1758 Basis: [ (L2^2 - L3^2) ]
1759------------------- CASE 6 -------------------
1760Condition:
1761 Green list: [ A, B, L2^2 - L3^2 ]
1762 Red list: [ L3, L2 ]
1763 Basis: [ (1) * C1^2 + (1) * S1^2 + ( - 1), (L3) * S2 + (0) * C1 + (0) * S1, (L3) * C2 + (0) * C1 + (0) * S1 + (L2) ]
1764WARNING: Test 6 - Circle of Apollonius
1765------------------- CASE 1 -------------------
1766Condition:
1767 Green list: [ U2, U1 ]
1768 Red list: [ ]
1769 Basis: [ (2) * X1 + (0), (2) * X2 + (0), (2) * X3 + (0), (2) * X4 + (0), ( - 4) * X6^2 + (8) * X6 * X8 + (0) * X8 + (0), (4) * S * X5^2 + ( - 8) * S * X5 * X7 + (0) * S * X7 + (0) * S * X8 + (0) * S + ( - 4) ]
1770------------------- CASE 2 -------------------
1771Condition:
1772 Green list: [ U2 ]
1773 Red list: [ U1 ]
1774 Basis: [ ( - 4 * U1^3) ]
1775------------------- CASE 3 -------------------
1776Condition:
1777 Green list: [ U1 ]
1778 Red list: [ U2 ]
1779 Basis: [ (4 * U2^2) ]
1780------------------- CASE 4 -------------------
1781Condition:
1782 Green list: [ ]
1783 Red list: [ U1, U2, U1^2 - U2^2, U1^2 + U2^2 ]
1784 Basis: [ (2) * X1 + ( - U1), (2) * X2 + ( - U2), (2) * X3 + ( - U1), (2) * X4 + ( - U2), (U1^2 * U2 + U2^3) * X5 + ( - U1 * U2^3), ( - U1^2 - U2^2) * X6 + (U1^2 * U2), ( - 4 * U1^5 + 4 * U1 * U2^4) * X7 + (U1^6 + 2 * U1^4 * U2^2 - 3 * U1^2 * U2^4), ( - 4 * U1^4 * U2 + 4 * U2^5) * X8 + (3 * U1^4 * U2^2 - 2 * U1^2 * U2^4 - U2^6), (2 * U1^6 * U2^2 - 2 * U1^4 * U2^4) * S + (4 * U1^6 - 4 * U1^2 * U2^4) ]
1785------------------- CASE 5 -------------------
1786Condition:
1787 Green list: [ U1^2 - U2^2 ]
1788 Red list: [ U1, U1^2 + U2^2, U2 ]
1789 Basis: [ (2) * X1 + ( - U1), (2) * X2 + ( - U2), (2) * X3 + ( - U1), (2) * X4 + ( - U2), (2 * U2^3) * X5 + ( - U1 * U2^3), ( - 2 * U2^2) * X6 + (U2^3), (4 * U1) * X7 + ( - 4 * U2) * X8 + (0), ( - 8 * U2^5) * S * X8 + (2 * U2^6) * S + ( - 8 * U2^4) ]
1790------------------- CASE 6 -------------------
1791Condition:
1792 Green list: [ U1^2 + U2^2 ]
1793 Red list: [ U1, U2 ]
1794 Basis: [ ( - U2^3) ]
1795WARNING: Test 7
1796
1797; in: LAMBDA NIL
1798; (SETF CGB-LISP::FL
1799; (CDR
1800; (PARSE:PARSE-STRING-TO-SORTED-ALIST
1801; "[a^2*x^2*y+b*x^2*y+a^3*b*x*y+a^3*c*x*y,c^2*a*x^2+c^2*b*x^2+b*y+4]"
1802; '(CGB-LISP::X CGB-LISP::Y CGB-LISP::A CGB-LISP::B CGB-LISP::C))))
1803; ==>
1804; (SETQ CGB-LISP::FL
1805; (CDR
1806; (PARSE:PARSE-STRING-TO-SORTED-ALIST
1807; "[a^2*x^2*y+b*x^2*y+a^3*b*x*y+a^3*c*x*y,c^2*a*x^2+c^2*b*x^2+b*y+4]"
1808; '(CGB-LISP::X CGB-LISP::Y CGB-LISP::A CGB-LISP::B CGB-LISP::C))))
1809;
1810; caught WARNING:
1811; undefined variable: FL
1812
1813;
1814; caught WARNING:
1815; This variable is undefined:
1816; FL
1817;
1818; compilation unit finished
1819; caught 2 WARNING conditions
1820
1821; in: LAMBDA NIL
1822; (SETF CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 2))
1823; ==>
1824; (SETQ CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 2))
1825;
1826; caught WARNING:
1827; undefined variable: CFL
1828
1829; (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 2)
1830;
1831; caught WARNING:
1832; undefined variable: FL
1833
1834;
1835; caught WARNING:
1836; These variables are undefined:
1837; CFL FL
1838;
1839; compilation unit finished
1840; caught 3 WARNING conditions
1841------------------- CASE 1 -------------------
1842Condition:
1843 Green list: [ ]
1844 Red list: [ A * C^2 + B * C^2, A^2 + B ]
1845 Basis: [ (A^2 + B) * X^2 * Y + (A^3 * B + A^3 * C) * X * Y, (A * C^2 + B * C^2) * X^2 + (B) * Y + (4) ]
1846------------------- CASE 2 -------------------
1847Condition:
1848 Green list: [ A^2 + B ]
1849 Red list: [ A * C^2 + B * C^2, A^3 * B + A^3 * C ]
1850 Basis: [ (A^3 * B + A^3 * C) * X * Y, (A * C^2 + B * C^2) * X^2 + (B) * Y + (4) ]
1851------------------- CASE 3 -------------------
1852Condition:
1853 Green list: [ B + C, A^2 - C ]
1854 Red list: [ A * C^2 + B * C^2 ]
1855 Basis: [ (A * C^2 + B * C^2) * X^2 + (B) * Y + (4) ]
1856------------------- CASE 4 -------------------
1857Condition:
1858 Green list: [ A * C^2 + B * C^2 ]
1859 Red list: [ B, A^2 + B ]
1860 Basis: [ (A^2 + B) * X^2 * Y + (A^3 * B + A^3 * C) * X * Y, (B) * Y + (4) ]
1861------------------- CASE 5 -------------------
1862Condition:
1863 Green list: [ A^2 + B, B * C^2 + C^2, A * C^2 - C^2 ]
1864 Red list: [ B, A^3 * B + A^3 * C ]
1865 Basis: [ (A^3 * B + A^3 * C) * X * Y, (B) * Y + (4) ]
1866------------------- CASE 6 -------------------
1867Condition:
1868 Green list: [ C - 1, B + 1, A - 1 ]
1869 Red list: [ B ]
1870 Basis: [ (B) * Y + (4) ]
1871------------------- CASE 7 -------------------
1872Condition:
1873 Green list: [ B, C^2 ]
1874 Red list: [ 4, A^2 + B ]
1875 Basis: [ (A^2 + B) * X^2 * Y + (A^3 * B + A^3 * C) * X * Y, (4) ]
1876------------------- CASE 8 -------------------
1877Condition:
1878 Green list: [ B, A * C^2, A^2 ]
1879 Red list: [ 4 ]
1880 Basis: [ (4) ]
1881WARNING: Test 8
1882
1883; in: LAMBDA NIL
1884; (SETF CGB-LISP::FL
1885; (CDR
1886; (PARSE:PARSE-STRING-TO-SORTED-ALIST "[a^2*x+5*a]"
1887; '(CGB-LISP::X CGB-LISP::A))))
1888; ==>
1889; (SETQ CGB-LISP::FL
1890; (CDR
1891; (PARSE:PARSE-STRING-TO-SORTED-ALIST "[a^2*x+5*a]"
1892; '(CGB-LISP::X CGB-LISP::A))))
1893;
1894; caught WARNING:
1895; undefined variable: FL
1896
1897;
1898; caught WARNING:
1899; This variable is undefined:
1900; FL
1901;
1902; compilation unit finished
1903; caught 2 WARNING conditions
1904
1905; in: LAMBDA NIL
1906; (SETF CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 1))
1907; ==>
1908; (SETQ CGB-LISP::CFL (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 1))
1909;
1910; caught WARNING:
1911; undefined variable: CFL
1912
1913; (COLORED-POLY:MAKE-COLORED-POLY-LIST CGB-LISP::FL 1)
1914;
1915; caught WARNING:
1916; undefined variable: FL
1917
1918;
1919; caught WARNING:
1920; These variables are undefined:
1921; CFL FL
1922;
1923; compilation unit finished
1924; caught 3 WARNING conditions
1925------------------- CASE 1 -------------------
1926Condition:
1927 Green list: [ ]
1928 Red list: [ A^2 ]
1929 Basis: [ (A^2) * X + (5 * A) ]
1930------------------- CASE 2 -------------------
1931Condition:
1932 Green list: [ A^2 ]
1933 Red list: [ ]
1934 Basis: [ ]
1935WARNING: Test 9 - the discriminant of a quadratic polynomial
1936------------------- CASE 1 -------------------
1937Condition:
1938 Green list: [ ]
1939 Red list: [ A, 4 * A * C - B^2 ]
1940 Basis: [ (4 * A * C - B^2) ]
1941------------------- CASE 2 -------------------
1942Condition:
1943 Green list: [ 4 * A * C - B^2 ]
1944 Red list: [ A ]
1945 Basis: [ (2 * A) * X + (B) ]
1946WARNING: Test 10 - the discriminant of a cubic polynomial
1947------------------- CASE 1 -------------------
1948Condition:
1949 Green list: [ ]
1950 Red list: [ P, 4 * P^3 + 27 * Q^2 ]
1951 Basis: [ ( - 4 * P^3 - 27 * Q^2) ]
1952------------------- CASE 2 -------------------
1953Condition:
1954 Green list: [ 4 * P^3 + 27 * Q^2 ]
1955 Red list: [ P ]
1956 Basis: [ (2 * P) * X + (3 * Q) ]
1957------------------- CASE 3 -------------------
1958Condition:
1959 Green list: [ P ]
1960 Red list: [ Q ]
1961 Basis: [ (3 * Q) ]
1962------------------- CASE 4 -------------------
1963Condition:
1964 Green list: [ P, Q ]
1965 Red list: [ ]
1966 Basis: [ (3) * X^2 + (0) ]
1967WARNING: Test 11 - the discriminant of a quartic polynomial
1968------------------- CASE 1 -------------------
1969Condition:
1970 Green list: [ ]
1971 Red list: [ 16 * P^4 * R - 4 * P^3 * Q^2 - 128 * P^2 * R^2 + 144 * P * Q^2 * R - 27 * Q^4 + 256 * R^3, P, 2 * P^3 - 8 * P * R + 9 * Q^2 ]
1972 Basis: [ (16 * P^6 * R - 4 * P^5 * Q^2 - 128 * P^4 * R^2 + 144 * P^3 * Q^2 * R - 27 * P^2 * Q^4 + 256 * P^2 * R^3) ]
1973------------------- CASE 2 -------------------
1974Condition:
1975 Green list: [ 16 * P^4 * R - 4 * P^3 * Q^2 - 128 * P^2 * R^2 + 144 * P * Q^2 * R - 27 * Q^4 + 256 * R^3 ]
1976 Red list: [ P, 2 * P^3 - 8 * P * R + 9 * Q^2 ]
1977 Basis: [ ( - 2 * P^3 + 8 * P * R - 9 * Q^2) * X + ( - P^2 * Q - 12 * Q * R) ]
1978------------------- CASE 3 -------------------
1979Condition:
1980 Green list: [ 2 * P^3 - 8 * P * R + 9 * Q^2 ]
1981 Red list: [ P, P^2 * Q + 12 * Q * R ]
1982 Basis: [ ( - P^2 * Q - 12 * Q * R) ]
1983------------------- CASE 4 -------------------
1984Condition:
1985 Green list: [ 2 * P^3 - 8 * P * R + 9 * Q^2, P^2 * Q + 12 * Q * R, 32 * P * Q * R - 9 * Q^3, 3 * P * Q^3 + 128 * Q * R^2, 27 * Q^5 + 4096 * Q * R^3, 8 * P^2 * R - 3 * P * Q^2 - 32 * R^2 ]
1986 Red list: [ P ]
1987 Basis: [ (2 * P) * X^2 + (3 * Q) * X + (4 * R) ]
1988------------------- CASE 5 -------------------
1989Condition:
1990 Green list: [ P ]
1991 Red list: [ Q, 72 * P * Q^2 * R - 27 * Q^4 + 256 * R^3 ]
1992 Basis: [ (27 * Q^4 - 256 * R^3) ]
1993------------------- CASE 6 -------------------
1994Condition:
1995 Green list: [ P, 27 * Q^4 - 256 * R^3 ]
1996 Red list: [ Q ]
1997 Basis: [ (3 * Q) * X + (4 * R) ]
1998------------------- CASE 7 -------------------
1999Condition:
2000 Green list: [ P, Q ]
2001 Red list: [ R ]
2002 Basis: [ (4 * R) ]
2003------------------- CASE 8 -------------------
2004Condition:
2005 Green list: [ P, Q, R ]
2006 Red list: [ ]
2007 Basis: [ (4) * X^3 + (0) * X + (0) ]
Note: See TracBrowser for help on using the repository browser.