Changeset 760258 in git
- Timestamp:
- Jun 11, 2015, 4:10:03 PM (8 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- 633196803bc6aac699d9f7df3d38f77b6222ea7d
- Parents:
- 2675bd98cab28ad9ecfd872518826ad7e66b19358aa9770fc6e41a905d10dd6cac4556354095e462
- Files:
-
- 96 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/LIB/deRham.lib
r2675bd r760258 3 3 category="Noncommutative"; 4 4 info=" 5 LIBRARY: de rham.lib Computation of deRham cohomology5 LIBRARY: deRham.lib Computation of deRham cohomology 6 6 7 7 AUTHORS: Cornelia Rottner, rottner@mathematik.uni-kl.de … … 16 16 localzation, and local cohomology groups}, J. Pure Appl. Algebra 156, 267-308 17 17 (2001) 18 [R] Rottner, C.: Computing de Rham Cohomology,diploma thesis (2012) 18 [R] Rottner, C.: Computing de Rham Cohomology,diploma thesis (2012)@* 19 19 [W1] Walther, U.: Algorithmic computation of local cohomology modules and the local 20 20 cohomological dimension of algebraic varieties}, J. Pure Appl. Algebra 139, 21 303-321 (1999) 21 303-321 (1999)@* 22 22 [W2] Walther, U.: Algorithmic computation of de Rham Cohomology of Complements of 23 Complex Affine Varieties}, J. Symbolic Computation 29, 796-839 (2000) 23 Complex Affine Varieties}, J. Symbolic Computation 29, 796-839 (2000)@* 24 24 [W3] Walther, U.: Computing the cup product structure for complements of complex 25 25 affine varieties, J. Pure Appl. Algebra 164, 247-273 (2001) -
Singular/LIB/gradedModules.lib
r2675bd r760258 23 23 grobj(M,w[,d]) construct a graded object (map) given by matrix M 24 24 grtest(A) check whether A is a valid graded object 25 grisequal(A,B) check whether A is exactly eqal to B? TODO: isomorphic!26 25 grdeg(M) compute graded degrees of columns of the map M 27 26 grview(M) view the graded structure of map M … … 57 56 matrixpres(a) matrix presentation of direct sum of Omega^{a[i]}(i) 58 57 "; 58 59 // grisequal(A,B) check whether A is exactly eqal to B? TODO: isomorphic! 59 60 60 61 LIB "matrix.lib"; // ? … … 73 74 "direct sum_i=1^size R(-v[i]), for source and targets of graded objects" 74 75 { 76 int n = size(v); 77 if (n == 0) { return ("0"); } 78 ASSUME(0, n > 0 ); 79 75 80 if (R == "") 76 81 { … … 80 85 ASSUME(0, defined(R) && (R != "") ); 81 86 82 int n = size(v);83 84 if (n == 0) { return ("0"); }85 86 ASSUME(0, n > 0 );87 88 87 v = -v; // NOTE: due to Mathematical meanings of Singular data 89 88 … … 178 177 string R = nameof(basering); 179 178 180 if( typeof( N ) == "list" ) 181 { 182 msg = msg + " resolution"; // TODO: what about chain maps? 179 if( typeof( N ) == "list" ) // TODO: find a better DS for graded resolutions / chain map !? 180 { 181 int n = size(N); ASSUME(0, n > 0); 182 183 string msg1 = ""; 183 184 if( size(R) >= 2 ) 184 185 { 185 msg = msg + "(let R:="+R+")"; 186 R = "R"; 186 msg1 = msg1 + "(let R:="+R+")"; 187 R = "R"; // !!! 188 } 189 msg1 = msg1 + ": " ; 190 191 192 193 list arr; arr[n] = list(); 194 int exact = (1==1); 195 196 int i = 1; 197 198 ASSUME(1, grtest(N[i])); 199 200 string dst = grsumstr(R, grrange(N[i])); 201 string src = grsumstr(R, grdeg(N[i])); 202 203 arr[i] = list(dst, src); 204 205 i = i + 1; 206 207 while( i <= n ) 208 { 209 ASSUME(1, grtest(N[i])); 210 211 dst = grsumstr(R, grrange(N[i])); 212 213 if( exact && (src != dst) ) 214 { 215 // "src: [" + src+ "] != [" + dst + "] :(!!"; 216 exact = (1==0); 217 } 218 219 src = grsumstr(R, grdeg(N[i])); 220 221 arr[i] = list(dst, src); 222 223 i = i + 1; 224 }; 225 226 string o = ""; 227 228 if( exact ) 229 { // complex? 230 msg = msg + " resolution" + msg1; 231 232 o = "d"; 233 234 for( i = 1; i <= n; i++ ) 235 { 236 msg = msg + newline + arr[i][1] + " <-- "+o+"_" + string(i) + " --"; 237 }; 238 239 msg = msg + newline + arr[n][2]; 240 msg = msg + ", given by maps: "; 241 } else 242 { 243 // print(arr); 244 245 msg = msg + "-object collection"; 246 o = "o"; 247 248 // for( i = 1; i <= n; i++ ) 249 // { 250 // msg = msg + newline + arr[i][1] + " <-- "+o+"_" + string(i) + " -- " + arr[i][2]; 251 // }; 252 msg = msg + ", given by the following maps (named here as "+o+"_[1 .. "+string(n)+"]): "; 187 253 } 188 254 189 190 int i = 1; int n = size(N);191 string dst;192 193 msg = msg + ": " + newline + grsumstr(R, grrange(N[i])) + " <-- d_" + string(i) + " -- " ;194 for( ; i < n; i++ )195 {196 dst = grsumstr(R, grdeg(N[i])) + " <-- d_" + string(i+1) + " --";197 msg = msg + newline + dst;198 };199 200 msg = msg + newline + grsumstr(R, grdeg(N[i])) + ", given by maps: ";201 255 202 256 print(msg); … … 204 258 for( i = 1; i <= size(N); i++ ) 205 259 { 206 "d_" + string(i) + " :"; grview(N[i]); 260 print( o+"_" + string(i) + " :" ); 261 grview( N[i] ); 207 262 }; 208 263 … … 393 448 } 394 449 395 /*396 if( flag ) // output details in case of non-identical permutation?397 {398 // grades & ordering permutation : gr[pivot] should be sorted:399 "s: ", s;400 "gr: ", gr;401 "pivot: ", pivot;402 }403 */404 450 ASSUME(1, issorted(intvec(gr[pivot]), 1)); 405 451 … … 407 453 } 408 454 409 // Q@Wolfram: what should be done with zero gens!?410 455 proc grdeg(M) 411 456 "USAGE: grdeg(M), graded object M 412 457 RETURN: intvec of degrees 413 PURPOSE: graded degrees of columns (generators) of M 458 PURPOSE: graded degrees of columns (generators) of M, describing the source of M 414 459 ASSUME: M must be a graded object (matrix/module/ideal/mapping) 415 460 NOTE: if M has zero cols it shoud have attrib(M,'degHomog') set. … … 423 468 def t = attrib(M, "degHomog"); // graded degrees 424 469 425 if( ncols(M) == 0 ) { return (t); } // for now470 if( size(t) == 0 ){ return (t); } // ZERO! 426 471 427 ASSUME( 0, ncols(M) == size(t) );472 ASSUME(2, ncols(M) == size(t) ); 428 473 return (t); 429 474 } 430 475 476 if( ncols(M) == 0 ) { return (0:0); } // FIXME: Why??? 477 431 478 ASSUME(0, ncols(M) > 0); 432 433 479 ASSUME(0, ncols(M) == size(M) ); 434 480 … … 747 793 ///////////////////////////////////////////////////////// 748 794 749 // Q@Woflram?750 795 proc grzero() 751 796 "USAGE: grzero() … … 755 800 " 756 801 { 757 return ( grobj( module([0]), intvec(0), intvec(0)) );802 return ( grobj(freemodule(0), intvec(0:0), intvec(0:0)) ); 758 803 } 759 804 example … … 762 807 ring r=32003,(x,y,z),dp; 763 808 764 def M = grpower( grshift( grzero(), 10), 5 ); 765 766 print(M); 767 768 grview(M); 809 810 grview( grobj(freemodule(0), intvec(0:0), intvec(0:0)) ); 811 grview( grobj(freemodule(0), intvec(0:0)) ); 812 813 grview( grzero() ); 814 815 // def M = grpower( grshift( grzero(), 3), 2 ); grview(M); 816 } 817 818 proc grtwists(intvec v) 819 "USAGE: grtwists(v), intvec v 820 RETURN: graded object representing S(v[1]) + ... + S(v[size(v)]) 821 PURPOSE: compute presentation of S(v[1]) + ... + S(v[size(v)]) 822 EXAMPLE: example grtwists; shows an example 823 " 824 { 825 matrix m[size(v)][0]; 826 return( grobj(m, -v) ); // will set the rank as well 827 } 828 example 829 { "EXAMPLE:"; echo = 2; 830 831 ring r=32003,(x,y,z),dp; 832 833 grview( grtwists ( intvec(-4, 1, 6 )) ); 834 835 grview( grtwists ( intvec(0:0) ) ); 836 } 837 838 proc grtwist(int a, int d) 839 "USAGE: grtwist(a,d), int a, d 840 RETURN: graded object representing S(d)^a 841 PURPOSE: compute presentation of S(d)^a 842 EXAMPLE: example grtwist; shows an example 843 " 844 { 845 ASSUME(0, a > 0); 846 def Z = grtwists( intvec(d:a) ); // will set the rank as well 847 // ASSUME(2, grisequal(Z, grpower( grshift(grzero(), d), a ) )); // optional check 848 return(Z); 849 } 850 example 851 { "EXAMPLE:"; echo = 2; 852 853 ring r=32003,(x,y,z),dp; 854 855 // grview(grpower( grshift(grzero(), 10), 5 ) ); 856 857 grview( grtwist (5, 10) ); 769 858 } 770 859 … … 827 916 intvec b = grrange(B); 828 917 intvec c = a,b; 829 int r = nrows(A); 830 831 module T = align(module(B), r); // T; print(T); nrows(T); // BUG!!!! 832 module S = module(A), T; 918 919 if( (ncols(B)>0) && (size(B)>0) ) 920 { 921 int r = nrows(A); 922 module T = align(module(B), r); // T; print(T); nrows(T); // BUG!!!! 923 module S = module(A), T; 924 } 925 else { def S = A; } 833 926 834 927 intvec da = grdeg(A); … … 836 929 intvec dc = da, db; 837 930 838 return(grobj(S, c, dc)); 931 932 def SS = grobj(S, c, dc); 933 934 ASSUME(0, size( grrange(SS) ) == (size(a) + size(b)) ); 935 ASSUME(0, size( grdeg(SS) ) == (size(da) + size(db)) ); 936 ASSUME(0, ncols( SS ) == size( grdeg(SS) ) ); 937 ASSUME(0, nrows( SS ) == size( grrange(SS) ) ); 938 939 return(SS); 839 940 } 840 941 example … … 883 984 { 884 985 ASSUME(1, grtest(M) ); 986 987 885 988 886 989 intvec a = grrange(M); 990 intvec t = grdeg(M); 991 992 if( size(a) == 0 && size(t) == 0 ) 993 { 994 "!! Warning: shifting '0 <- 0' leaves it as it unchanged!"; 995 return (M); 996 } 997 887 998 a = a - intvec(d:size(a)); 888 889 intvec t = attrib(M, "degHomog");890 999 t = t - intvec(d:size(t)); 891 1000 … … 904 1013 905 1014 grview(S); 1015 1016 grview( grshift( grzero(), 100 ) ); // does nothing... 906 1017 } 907 1018 … … 934 1045 example 935 1046 { "EXAMPLE:"; echo = 2; 936 TODO 937 } 938 939 proc grtwist(int a, int d) 940 "USAGE: grtwist(a,d), int a, d 941 RETURN: graded object representing S(d)^a 942 PURPOSE: compute presentation of S(d)^a 943 EXAMPLE: example grtwist; shows an example 944 " 945 { 946 ASSUME(0, a > 0); 947 948 module Z; Z[a] = [0]; 949 intvec w = -intvec(d:a); 950 Z = grobj(Z, w, w); // will set the rank as well 951 ASSUME(2, grisequal(Z, grpower( grshift(grzero(), d), a ) )); // optional check 952 return(Z); 953 } 954 example 955 { "EXAMPLE:"; echo = 2; 956 957 ring r=32003,(x,y,z),dp; 958 959 grview(grpower( grshift(grzero(), 10), 5 ) ); 960 961 grview( grtwist (5, 10) ); 1047 // TODO 962 1048 } 963 1049 … … 969 1055 " 970 1056 { 971 if( ncols(A) == 0 ) 972 { 973 ASSUME(0, size(w) == nrows(A) ); 974 attrib(A, "isHomog", w); 975 attrib(A, "degHomog", intvec(0)); // FIXME: just for now: no intvec of 0-size :( 976 ASSUME(0, grtest(A) ); 977 return (A); 978 } 1057 ASSUME(0, size(w) >= nrows(A) ); 979 1058 980 1059 module M = module(A); 981 ASSUME(0, size(w) >= nrows(M) );982 1060 983 1061 attrib( M, "rank", size(w) ); 984 1062 attrib( M, "isHomog", w ); 985 1063 1064 intvec @ww = 0:0; 1065 986 1066 if( size(#) > 0 ) 987 1067 { 988 1068 ASSUME(0, typeof(#[1]) == "intvec" ); 989 ASSUME(0, size(#[1]) == ncols(M) ); 990 attrib(M, "degHomog", #[1]); 1069 1070 @ww = intvec( #[1] ); 1071 1072 if( size(@ww) != ncols(M) ) 1073 { 1074 if( (size(M) == 0) && (ncols(M) <= 1) && (size(w) == 0) && (size(@ww) > 0) ) 1075 { 1076 matrix m[size(w)][size(@ww)]; M = module(m); attrib( M, "isHomog", w ); 1077 } 1078 } 1079 1080 ASSUME(0, size(@ww) == ncols(M) ); 991 1081 } 992 1082 else 993 1083 { 994 ASSUME(0, /* no zero cols please! */ size(M) == ncols(M) ); 995 attrib(M, "degHomog", grdeg(M)); 996 } 1084 if( size(M) == ncols(M) ) /* no zero cols? */ 1085 { 1086 @ww = grdeg(M); // let us compute them all :) 1087 } else 1088 { 1089 if( (ncols(M) == 1) && (size(M) == 0) ) 1090 { 1091 M = freemodule(0); 1092 } 1093 1094 attrib( M, "rank", size(w) ); 1095 attrib( M, "isHomog", w ); 1096 1097 // ASSUME(0, /* PROBLEM WITH ZERO COLUMNS / THEIR DEGREES! */ (ncols(M) == 0) ); 1098 } 1099 } 1100 1101 // type(@ww); type(M); 1102 1103 ASSUME(0, size(@ww) == ncols(M) ); // ?! 1104 1105 attrib(M, "degHomog", @ww); 997 1106 998 1107 ASSUME(0, grtest(M) ); … … 1020 1129 1021 1130 // Zero object: 1022 matrix z[3][0]; 1023 def zz = grobj( z, intvec(1,2,3) ); // intvec() ?? 1024 grview(zz); 1131 matrix z[3][0]; grview( grobj( z, intvec(1,2,3) ) ); 1132 grview( grobj( freemodule(0), intvec(1,2,3) ) ); 1133 1134 matrix z1[0][3]; grview( grobj( z1, 0:0, intvec(1,2,3) ) ); 1135 grview( grobj( freemodule(0), 0:0, intvec(1,2,3) ) ); 1136 1137 matrix z0[0][0]; grview( grobj( z0, 0:0 ) ); 1138 grview( grobj( freemodule(0), 0:0 ) ); 1139 1140 1025 1141 1026 1142 } … … 1067 1183 { 1068 1184 intvec T = attrib(N, "degHomog"); // graded degrees 1185 1186 if( (ncols(N) == 1) && (size(T) == 0) && (size(N) == 0) ) 1187 { 1188 // if(b) { "Input seems to be a valid graded ZERO-arrow!"; }; 1189 return (1); 1190 } 1069 1191 1070 1192 if ( ncols(N) != size(T) ) … … 1120 1242 // the following calls will fail due to tests in grtest: 1121 1243 1244 grobj( module([x+y, x, 0, 0], [0, x+y, y, 0]), intvec(0,0,0,0) ); // enough row weights 1122 1245 // grobj( module([x+y, x, 0, 0], [0, x+y, y, 0]), intvec(0,0) ); // not enough row weights 1123 1246 // grobj( module([x,0], [0,0,0], [0, y]), intvec(1,2,3) ); // zero column needs (otherwise optional) total degrees 1124 // grobj( module([x,0], [0,0,0], [0, y]), intvec(1,2,3), intvec(1, 1, 1) ); // incompatible total degrees (on non-zero columns) 1247 grobj( module([x,0], [0,0,0], [0, y]), intvec(1,2,3), intvec(2, 10, 3) ); // compatible total degrees (on non-zero columns) 1248 // grobj( module([x,0], [0,0,0], [0, y]), intvec(1,2,3), intvec(2-1, 10, 3+1) ); // incompatible total degrees (on both non-zero columns) 1125 1249 1126 1250 } … … 1143 1267 return (B); 1144 1268 } 1145 1146 1269 1147 1270 module T; T[d] = 0; … … 1151 1274 example 1152 1275 { "EXAMPLE:"; echo = 2; 1276 1153 1277 ring r; 1154 matrix m[1][0]; 1155 align(m, 3); 1278 matrix m[2][0]; 1279 type( align(m, 3) ); 1280 1281 matrix m[0][2]; 1282 type( align(m, 3) ); 1156 1283 } 1157 1284 … … 1180 1307 } 1181 1308 1182 1183 proc grtwists(intvec v)1184 "USAGE: grtwists(v), intvec v1185 RETURN: graded object representing S(v[1]) + ... + S(v[size(v)])1186 PURPOSE: compute presentation of S(v[1]) + ... + S(v[size(v)])1187 EXAMPLE: example grtwists; shows an example1188 "1189 {1190 int l = size(v);1191 module Z; Z[l] = [0];1192 Z = grobj(Z, -v, -v); // will set the rank as well1193 return(Z);1194 }1195 example1196 { "EXAMPLE:"; echo = 2;1197 1198 ring r=32003,(x,y,z),dp;1199 1200 grview( grtwists ( intvec(-4, 1, 6 )) );1201 }1202 1203 1204 1309 proc grsyz(A) 1205 1310 "USAGE: grsyz(M), graded object M … … 1210 1315 { 1211 1316 ASSUME(1, grtest(A)); 1212 intvec v = grdeg(A); 1213 1214 // grrange(A); 1215 1216 module M = syz(A); 1217 // print(M); 1218 1219 if( size(M) > 0 ) { return( grobj( M, v ) ); } 1220 1221 // zero syzygy? 1222 return( grtwists(-v) ); // ??? 1317 return( grobj( syz(A), grdeg(A) ) ); 1318 1319 // if( size(syz(A)) == 0 ) : zero syzygy? // return( grtwists( -grdeg(A) ) ); 1223 1320 } 1224 1321 example … … 1227 1324 ring r=32003,(x,y,z),dp; 1228 1325 1229 module A = gr obj( module([x+y, x, 0, 3], [0, x+y, y, 2], [y, y, z, 1]), intvec(0,0,0,1) );1326 module A = grgroebner( grobj( module([x+y, x, 0, 3], [0, x+y, y, 2], [y, y, z, 1]), intvec(0,0,0,1) ) ); 1230 1327 grview(A); 1231 1328 1232 module B = grgroebner(A); 1233 grview(B); 1234 1235 module C = grsyz(B); 1236 grview(C); 1329 grview(grsyz(A)); 1330 1331 module X = grgroebner( grobj( module([x]), intvec(2) ) ); 1332 grview(X); 1333 1334 // syzygy module should be zero! 1335 grview(grsyz(X)); 1336 1337 1237 1338 } 1238 1339 … … 1248 1349 ASSUME(1, grtest(B)); 1249 1350 1250 // TODO: ASSUME(0, grdeg() == grrange());!!! 1351 intvec a = grdeg(A); 1352 intvec b = grrange(B); 1353 1354 ASSUME(0, (size(a) == size(b)) && (a == b)); // == for intvec :( 1251 1355 1252 1356 return ( grobj( A*B, grrange(A), grdeg(B) ) ); … … 1276 1380 1277 1381 1382 // TODO: think about a proper data structure for a graded resolution!? 1278 1383 proc grres(def A, int l, list #) 1279 1384 "USAGE: grres(M, l[, b]), graded object M, int l, int b … … 1291 1396 if(b) { list r = res(A, l, #[1]); } else { list r = res(A, l); } 1292 1397 1293 // r; v;1294 1295 1398 l = size(r); 1296 1399 1297 int i; module m;1400 int i; 1298 1401 1299 1402 for ( i = 1; i <= l; i++ ) 1300 1403 { 1301 if( size(r[i]) == 0 ){ r[i] = grtwists(-v); i++; break; } 1404 if( size(r[i]) == 0 ) 1405 { 1406 r[i] = grobj(freemodule(0), v); // grtwists(-v); 1407 i++; 1408 break; 1409 } 1302 1410 1303 1411 r[i] = grobj(r[i], v); v = grdeg(r[i]); 1304 1412 } 1413 1305 1414 i = i-1; 1306 1415 … … 1326 1435 1327 1436 proc grtranspose(def M) 1328 " 1329 USAGE: grtranspose(M), graded object M 1437 "USAGE: grtranspose(M), graded object M 1330 1438 RETURN: graded object 1331 1439 PURPOSE: graded transpose of M … … 1351 1459 1352 1460 1353 module A = grobj( module([x+y, x, 0, 3], [0, x+y, y, 2], [y, y, z, 1]), intvec(0,0,0,1) ); A = grgroebner(A); grview(A); 1354 1355 "graded transpose: "; module B = grtranspose(A); grview( B ); print(B); 1356 1357 "... syzygy: "; module C = grsyz(B); grview(C); 1358 1359 "... transposed: "; module D = grtranspose(C); grview( D ); print (D); 1360 1361 "... and back to presentation: "; module E = grsyz( D ); grview(E); print(E); 1362 1363 module F = grgens( E ); grview(F); print(F); 1364 1365 module G = grpres( F ); grview(G); print(G); 1461 // Corner cases: 0 <- 0! 1462 module Z = grzero(); grview(Z); 1463 grview( grtranspose( Z ) ); 1464 1465 1466 // Corner cases: * <- 0 1467 matrix M1[3][0]; 1468 1469 module Z1 = grobj( M1, intvec(-1, 0, 1) ); grview(Z1); 1470 grview( grtranspose( Z1 ) ); 1471 1472 1473 // Corner cases: 0 <- * 1474 matrix M2[0][3]; 1475 1476 module Z2 = grobj( M2, 0:0, intvec(-1, 0, 1) ); grview(Z2); 1477 grview( grtranspose( Z2 ) ); 1478 1366 1479 } 1367 1480 1368 1481 1369 1482 proc grgens(def M) 1370 " 1371 USAGE: grgens(M), graded object M (map) 1483 "USAGE: grgens(M), graded object M (map) 1372 1484 RETURN: graded object 1373 1485 PURPOSE: try compute graded generators of coker(M) and return them as columns … … 1404 1516 1405 1517 grview( B ); print(B); // Ups :( != A 1518 1519 grview( grgens( grzero() ) ); 1406 1520 1407 1521 } … … 1409 1523 1410 1524 proc grpres(def M) 1411 " 1412 USAGE: grpres(M), graded object M (submodule gens) 1525 "USAGE: grpres(M), graded object M (submodule gens) 1413 1526 RETURN: graded module (via coker) 1414 1527 PURPOSE: compute graded presentation matrix of submodule generated by columns of M … … 1418 1531 ASSUME(1, grtest(M) ); 1419 1532 1420 moduleN = grsyz(M);1533 def N = grsyz(M); 1421 1534 1422 1535 // ASSUME(3, grisequal( M, grgens( N ) ) ); … … 1429 1542 ring r=32003,(x,y,z),dp; 1430 1543 1431 module M = grtwists( intvec(-2, 0, 4, 4) ); grview(M); 1432 1433 module N = grgens(M); grview( N ); print(N); 1434 1435 module L = grpres( N ); grview( L ); print(L); 1436 1437 1438 module A = grobj( module([x+y, x, 0, 3], [0, x+y, y, 2], [y, y, z, 1]), intvec(0,0,0,1) ); 1439 1440 A = grgroebner(A); grview(A); 1441 1442 module B = grgens(A); grview( B ); print(B); 1443 1444 module C = grpres( B ); grview( C ); print(C); 1544 def A = grgroebner( grobj( module([x+y, x, 0, 3], [0, x+y, y, 2], [y, y, z, 1]), intvec(0,0,0,1) ) ); 1545 grview(A); 1546 1547 "graded transpose: "; def B = grtranspose(A); grview( B ); print(B); 1548 1549 "... syzygy: "; def C = grsyz(B); grview(C); 1550 1551 "... transposed: "; def D = grtranspose(C); grview( D ); print (D); 1552 1553 "... and back to presentation: "; def E = grsyz( D ); grview(E); print(E); 1554 1555 def F = grgens( E ); grview(F); print(F); 1556 def G = grpres( F ); grview(G); print(G); 1557 1558 1559 def M = grtwists( intvec(-2, 0, 4, 4) ); grview(M); 1560 1561 def N = grgens(M); grview( N ); print(N); 1562 1563 def L = grpres( N ); grview( L ); print(L); 1445 1564 } 1446 1565 … … 1504 1623 } 1505 1624 1506 // 1507 1508 1625 // TODO: remove the following? 1509 1626 proc KeneshlouMatrixPresentation(intvec a) 1510 "USAGE: intvec a.1627 "USAGE: KeneshlouMatrixPresentation(intvec a), intvec a. 1511 1628 RETURN: graded object 1512 1629 PURPOSE: matrix presentation for direct sum of omega^a[i](i) in form of a graded object … … 1675 1792 1676 1793 proc grrange(M) 1794 "USAGE: grrange(M), graded object M 1795 RETURN: intvec 1796 PURPOSE: get weights of module units, thus describing the target of M 1797 EXAMPLE: example grrange; shows an example 1798 " 1677 1799 { 1678 1800 // ASSUME(1, grtest(M)); // Leads to recursive call due to grtest... 1679 1801 return( attrib(M, "isHomog") ); 1680 1802 } 1803 example 1804 { "EXAMPLE:"; echo = 2; 1805 1806 ring r=32003,(x,y,z),dp; 1807 1808 module Z = grobj(freemodule(0),intvec(0:0),intvec(0:0)); 1809 1810 grrange(Z); 1811 grdeg(Z); 1812 1813 grview(Z); 1814 1815 module P=grobj(module([xy,0,xz]),intvec(0,1,0)); 1816 1817 grrange(P); 1818 grdeg(P); 1819 1820 grview(P); 1821 } 1681 1822 1682 1823 proc grlift0(M, N, alpha1) 1683 "PURPOSE: generic random alpha0 : coker(M) -> coker(N) from random alpha1 1824 "USAGE: grlift0(M, N, alpha1) TODO! 1825 PURPOSE: generic random alpha0 : coker(M) -> coker(N) from random alpha1 1684 1826 NOTE: this proc can work only if some assumptions are fulfilled (due 1685 1827 to Wolfram)! e.g. at the end of a resolution for the source module... … … 1733 1875 1734 1876 proc grlifting(M,N) 1735 "USAGE: graded objects M and N1877 "USAGE: grlifting(M,N), graded objects M and N 1736 1878 RETURN: map of chain complexes (as a list) 1737 1879 PURPOSE: construct a map of chain complexes between free resolutions of Img(M) and Img(N). … … 1823 1965 1824 1966 proc mappingcone(M,N) 1825 "USAGE: M,N graded objects1967 "USAGE: mappingcone(M,N), M,N graded objects 1826 1968 RETURN: chain complex (as a list) 1827 1969 PURPOSE: construct a free resolution of the cokernel of a random map between Img(M), and Img(N). … … 1885 2027 // correct 1886 2028 proc grrndmap(def S, def D, list #) 1887 "USAGE: (S,D), graded objects S and D2029 "USAGE: grrndmap(S,D), graded objects S and D 1888 2030 RETURN: graded object 1889 2031 PURPOSE: construct a random 0-deg graded homomorphism src(S) -> src(D) … … 1919 2061 1920 2062 proc grrndmap2(def D, def S, list #) 1921 "USAGE: (D,S), graded objects S and D2063 "USAGE: grrndmap2(D,S), graded objects S and D 1922 2064 RETURN: graded object 1923 2065 PURPOSE: construct a random 0-deg graded homomorphism between target of D and S. … … 1955 2097 // 1956 2098 proc grlifting2(A,B) 1957 "USAGE: (A,B), graded objects A and B (matrices defining maps)2099 "USAGE: grlifting2(A,B), graded objects A and B (matrices defining maps) 1958 2100 RETURN: map of chain complexes (as a list) 1959 2101 PURPOSE: construct a map of chain complexes between free resolution of … … 2028 2170 // G0<-----F0+G1<------F1+G2<-------F2+G3<----- 2029 2171 proc mappingcone2(A,B) 2030 "USAGE: (A,B), graded objects A and B (matrices defining maps)2172 "USAGE: mappingcone2(A,B), graded objects A and B (matrices defining maps) 2031 2173 RETURN: chain complex (as a list) 2032 2174 PURPOSE: construct the free resolution of a cokernel of a random map between M=coker(A), and N=coker(B) … … 2198 2340 //G0<-----F0+G1<------F1+G2<-------F2+G3<----- 2199 2341 proc mappingcone3(A,B) 2200 "USAGE: (A,B), graded objects A and B (matrices defining maps)2342 "USAGE: mappingcone3(A,B), graded objects A and B (matrices defining maps) 2201 2343 RETURN: chain complex (as a list) 2202 2344 PURPOSE: construct a free resolution of the cokernel of a random map between M=coker(A), and N=coker(B) … … 2290 2432 // TODO: Please decide between KeneshlouMatrixPresentation and matrixpres, and replace one with the other! 2291 2433 proc matrixpres(intvec a) 2292 "USAGE: intvec a2434 "USAGE: matrixpres(a), intvec a 2293 2435 RETURN: graded object 2294 2436 PURPOSE: matrix presentation for direct sum of omega^a[i](i) in form of a graded object -
Singular/LIB/grwalk.lib
r8aa977 r760258 255 255 } 256 256 257 proc gwalk(ideal Go, list #)258 "SYNTAX: gwalk(ideal i );259 gwalk(ideal i, int vec v, intvec w);257 proc gwalk(ideal Go, int reduction,int printout, list #) 258 "SYNTAX: gwalk(ideal i, int reduction, int printout); 259 gwalk(ideal i, int reduction, int printout, intvec v, intvec w); 260 260 TYPE: ideal 261 261 PURPOSE: compute the standard basis of the ideal, calculated via … … 274 274 string ord_str = OSCTW[2]; 275 275 intvec curr_weight = OSCTW[3]; /* original weight vector */ 276 intvec target_weight = OSCTW[4]; /* t erget weight vector */276 intvec target_weight = OSCTW[4]; /* target weight vector */ 277 277 kill OSCTW; 278 278 option(redSB); … … 284 284 //print("//** help ring = " + string(basering)); 285 285 ideal G = fetch(xR, Go); 286 G = system("Mwalk", G, curr_weight, target_weight,basering );286 G = system("Mwalk", G, curr_weight, target_weight,basering,reduction,printout); 287 287 288 288 setring xR; … … 299 299 //** compute a Groebner basis of I w.r.t. lp. 300 300 ring r = 32003,(z,y,x), lp; 301 ideal I = y3+xyz+y2z+xz3, 3+xy+x2y+y2z; 302 gwalk(I); 301 ideal I = zy2+yx2+yx+3, 302 z3x+y3+zyx-yx2-yx-3, 303 z2yx3-y5+z2yx2+y3x2+y2x3+y3x+y2x2+3z2x+3y2+3yx, 304 zyx5+y6-y4x2-y3x3+2zyx4-y4x-y3x2+zyx3-3z2yx+3zx3-3y3-3y2x+3zx2, 305 yx7-y7+y5x2+y4x3+3yx6+y5x+y4x2+3yx5-6zyx3+yx4+3x5+3y4+3y3x-6zyx2+6x4+3x3-9zx; 306 gwalk(I,0,1); 303 307 } 304 308 … … 346 350 } 347 351 348 proc fwalk(ideal Go, list #)349 "SYNTAX: fwalk(ideal i );350 fwalk(ideal i, int vec v, intvec w);352 proc fwalk(ideal Go, int reduction, int printout, list #) 353 "SYNTAX: fwalk(ideal i,int reductioin); 354 fwalk(ideal i, int reduction intvec v, intvec w); 351 355 TYPE: ideal 352 356 PURPOSE: compute the standard basis of the ideal w.r.t. the … … 372 376 373 377 ideal G = fetch(xR, Go); 374 G = system("Mfwalk", G, curr_weight, target_weight );378 G = system("Mfwalk", G, curr_weight, target_weight, reduction, printout); 375 379 376 380 setring xR; … … 387 391 ring r = 32003,(z,y,x), lp; 388 392 ideal I = y3+xyz+y2z+xz3, 3+xy+x2y+y2z; 389 fwalk(I); 393 int reduction = 1; 394 int printout = 1; 395 fwalk(I,reduction,printout); 390 396 } 391 397 … … 437 443 } 438 444 439 proc pwalk(ideal Go, int n1, int n2, list #)440 "SYNTAX: pwalk(int d, ideal i, int n1, int n2 );441 pwalk(int d, ideal i, int n1, int n2, int vec v, intvec w);445 proc pwalk(ideal Go, int n1, int n2, int reduction, int printout, list #) 446 "SYNTAX: pwalk(int d, ideal i, int n1, int n2, int reduction, int printout); 447 pwalk(int d, ideal i, int n1, int n2, int reduction, int printout, intvec v, intvec w); 442 448 TYPE: ideal 443 449 PURPOSE: compute the standard basis of the ideal, calculated via … … 477 483 ideal G = fetch(xR, Go); 478 484 479 G = system("Mpwalk", G, n1, n2, curr_weight, target_weight,nP);480 485 G = system("Mpwalk",G,n1,n2,curr_weight,target_weight,nP,reduction,printout); 486 481 487 setring xR; 482 //kill Go; 488 //kill Go; //unused 483 489 484 490 keepring basering; … … 492 498 ring r = 32003,(z,y,x), lp; 493 499 ideal I = y3+xyz+y2z+xz3, 3+xy+x2y+y2z; 494 //I = std(I); 495 //ring rr = 32003,(z,y,x),lp; 496 //ideal I = fetch(r,I); 497 pwalk(I,2,2); 500 int reduction = 1; 501 int printout = 2; 502 pwalk(I,2,2,reduction,printout); 498 503 } 499 504 -
Singular/LIB/modwalk.lib
-
Property
mode
changed from
100644
to100755
r8aa977 r760258 16 16 17 17 PROCEDURES: 18 modWalk(ideal,int,int[,int,int,int,int]); standard basis conversion of I using modular methods (chinese remainder) 18 19 modWalk(I,#); standard basis conversion of I by Groebner Walk using modular methods 20 modrWalk(I,radius,pertdeg,#); standard basis conversion of I by Random Walk using modular methods 21 modfWalk(I,#); standard basis conversion of I by Fractal Walk using modular methods 22 modfrWalk(I,radius,#); standard basis conversion of I by Random Fractal Walk using modular methods 19 23 "; 20 24 21 LIB "poly.lib";22 LIB "ring.lib";23 LIB "parallel.lib";24 25 LIB "rwalk.lib"; 25 26 LIB "grwalk.lib"; 26 LIB "modstd.lib"; 27 28 29 //////////////////////////////////////////////////////////////////////////////// 30 31 static proc modpWalk(def II, int p, int variant, list #) 32 "USAGE: modpWalk(I,p,#); I ideal, p integer, variant integer 33 ASSUME: If size(#) > 0, then 34 #[1] is an intvec describing the current weight vector 35 #[2] is an intvec describing the target weight vector 36 RETURN: ideal - a standard basis of I mod p, integer - p 37 NOTE: The procedure computes a standard basis of the ideal I modulo p and 38 fetches the result to the basering. 39 EXAMPLE: example modpWalk; shows an example 40 " 41 { 42 option(redSB); 43 int k,nvar@r; 44 def R0 = basering; 45 string ordstr_R0 = ordstr(R0); 46 list rl = ringlist(R0); 47 int sizerl = size(rl); 48 int neg = 1 - attrib(R0,"global"); 49 if(typeof(II) == "ideal") 50 { 51 ideal I = II; 27 LIB "modular.lib"; 28 29 proc modWalk(ideal I, list #) 30 "USAGE: modWalk(I, [, v, w]); I ideal, v intvec, w intvec 31 RETURN: a standard basis of I 32 NOTE: The procedure computes a standard basis of I (over the rational 33 numbers) by using modular methods. 34 SEE ALSO: modular 35 EXAMPLE: example modWalk; shows an example" 36 { 37 /* read optional parameter */ 38 if (size(#) > 0) { 39 if (size(#) == 1) { 40 intvec w = #[1]; 41 } 42 if (size(#) == 2) { 43 intvec v = #[1]; 44 intvec w = #[2]; 45 } 46 if (size(#) > 2 || typeof(#[1]) != "intvec") { 47 ERROR("wrong optional parameter"); 48 } 49 } 50 51 /* save options */ 52 intvec opt = option(get); 53 option(redSB); 54 55 /* set additional parameters */ 56 int reduction = 1; 57 int printout = 0; 58 59 /* call modular() */ 60 if (size(#) > 0) { 61 I = modular("gwalk", list(I,reduction,printout,#)); 62 } 63 else { 64 I = modular("gwalk", list(I,reduction,printout)); 65 } 66 67 /* return the result */ 68 attrib(I, "isSB", 1); 69 option(set, opt); 70 return(I); 71 } 72 example 73 { 74 "EXAMPLE:"; 75 echo = 2; 76 ring R1 = 0, (x,y,z,t), dp; 77 ideal I = 3x3+x2+1, 11y5+y3+2, 5z4+z2+4; 78 I = std(I); 79 ring R2 = 0, (x,y,z,t), lp; 80 ideal I = fetch(R1, I); 81 ideal J = modWalk(I); 82 J; 83 } 84 85 proc modrWalk(ideal I, int radius, int pertdeg, list #) 86 "USAGE: modrWalk(I, radius, pertdeg[, v, w]); 87 I ideal, radius int, pertdeg int, v intvec, w intvec 88 RETURN: a standard basis of I 89 NOTE: The procedure computes a standard basis of I (over the rational 90 numbers) by using modular methods. 91 SEE ALSO: modular 92 EXAMPLE: example modrWalk; shows an example" 93 { 94 /* read optional parameter */ 95 if (size(#) > 0) { 96 if (size(#) == 1) { 97 intvec w = #[1]; 98 } 99 if (size(#) == 2) { 100 intvec v = #[1]; 101 intvec w = #[2]; 102 } 103 if (size(#) > 2 || typeof(#[1]) != "intvec") { 104 ERROR("wrong optional parameter"); 105 } 106 } 107 108 /* save options */ 109 intvec opt = option(get); 110 option(redSB); 111 112 /* set additional parameters */ 113 int reduction = 1; 114 int printout = 0; 115 116 /* call modular() */ 117 if (size(#) > 0) { 118 I = modular("rwalk", list(I,radius,pertdeg,reduction,printout,#)); 119 } 120 else { 121 I = modular("rwalk", list(I,radius,pertdeg,reduction,printout)); 122 } 123 124 /* return the result */ 125 attrib(I, "isSB", 1); 126 option(set, opt); 127 return(I); 128 } 129 example 130 { 131 "EXAMPLE:"; 132 echo = 2; 133 ring R1 = 0, (x,y,z,t), dp; 134 ideal I = 3x3+x2+1, 11y5+y3+2, 5z4+z2+4; 135 I = std(I); 136 ring R2 = 0, (x,y,z,t), lp; 137 ideal I = fetch(R1, I); 52 138 int radius = 2; 53 int pert_deg = 2; 54 } 55 if(typeof(II) == "list" && typeof(II[1]) == "ideal") 56 { 57 ideal I = II[1]; 58 if(size(II) == 2) 59 { 60 int radius = II[2]; 61 int pert_deg = 2; 62 } 63 if(size(II) == 3) 64 { 65 int radius = II[2]; 66 int pert_deg = II[3]; 67 } 68 } 69 rl[1] = p; 70 int h = homog(I); 71 def @r = ring(rl); 72 setring @r; 73 ideal i = fetch(R0,I); 74 string order; 75 if(system("nblocks") <= 2) 76 { 77 if(find(ordstr_R0, "M") + find(ordstr_R0, "lp") + find(ordstr_R0, "rp") <= 0) 78 { 79 order = "simple"; 80 } 81 } 82 83 //------------------------- make i homogeneous ----------------------------- 84 if(!mixedTest() && !h) 85 { 86 if(!((find(ordstr_R0, "M") > 0) || (find(ordstr_R0, "a") > 0) || neg)) 87 { 88 if(!((order == "simple") || (sizerl > 4))) 89 { 90 list rl@r = ringlist(@r); 91 nvar@r = nvars(@r); 92 intvec w; 93 for(k = 1; k <= nvar@r; k++) 94 { 95 w[k] = deg(var(k)); 96 } 97 w[nvar@r + 1] = 1; 98 rl@r[2][nvar@r + 1] = "homvar"; 99 rl@r[3][2][2] = w; 100 def HomR = ring(rl@r); 101 setring HomR; 102 ideal i = imap(@r, i); 103 i = homog(i, homvar); 104 } 105 } 106 } 107 108 //------------------------- compute a standard basis mod p ----------------------------- 109 110 if(variant == 1) 111 { 112 if(size(#)>0) 113 { 114 i = rwalk(i,radius,pert_deg,#); 115 // rwalk(i,radius,pert_deg,#); std(i); 116 } 117 else 118 { 119 i = rwalk(i,radius,pert_deg); 120 } 121 } 122 if(variant == 2) 123 { 124 if(size(#) == 2) 125 { 126 i = gwalk(i,#); 127 } 128 else 129 { 130 i = gwalk(i); 131 } 132 } 133 if(variant == 3) 134 { 135 if(size(#) == 2) 136 { 137 i = frandwalk(i,radius,#); 138 } 139 else 140 { 141 i = frandwalk(i,radius); 142 } 143 } 144 if(variant == 4) 145 { 146 if(size(#) == 2) 147 { 148 i=fwalk(i,#); 149 } 150 else 151 { 152 i=fwalk(i); 153 } 154 } 155 if(variant == 5) 156 { 157 if(size(#) == 2) 158 { 159 i=prwalk(i,radius,pert_deg,pert_deg,#); 160 } 161 else 162 { 163 i=prwalk(i,radius,pert_deg,pert_deg); 164 } 165 } 166 if(variant == 6) 167 { 168 if(size(#) == 2) 169 { 170 i=pwalk(i,pert_deg,pert_deg,#); 171 } 172 else 173 { 174 i=pwalk(i,pert_deg,pert_deg); 175 } 176 } 177 178 if(!mixedTest() && !h) 179 { 180 if(!((find(ordstr_R0, "M") > 0) || (find(ordstr_R0, "a") > 0) || neg)) 181 { 182 if(!((order == "simple") || (sizerl > 4))) 183 { 184 i = subst(i, homvar, 1); 185 i = simplify(i, 34); 186 setring @r; 187 i = imap(HomR, i); 188 i = interred(i); 189 kill HomR; 190 } 191 } 192 } 193 setring R0; 194 return(list(fetch(@r,i),p)); 195 } 196 example 197 { 198 "EXAMPLE:"; echo = 2; 199 option(redSB); 200 201 int p = 181; 202 intvec a = 2,1,3,4; 203 intvec b = 1,9,1,1; 204 ring ra = 0,x(1..4),(a(a),lp); 205 ideal I = std(cyclic(4)); 206 ring rb = 0,x(1..4),(a(b),lp); 207 ideal I = imap(ra,I); 208 modpWalk(I,p,1,a,b); 209 std(I); 210 } 211 212 //////////////////////////////////////////////////////////////////////////////// 213 214 proc modWalk(def II, int variant, list #) 215 "USAGE: modWalk(II); II ideal or list(ideal,int) 216 ASSUME: If variant = 217 @* - 1 the Random Walk algorithm with radius II[2] is applied 218 to II[1] if II = list(ideal, int). It is applied to II with radius 2 219 if II is an ideal. 220 @* - 2, the Groebner Walk algorithm is applied to II[1] or to II, respectively. 221 @* - 3, the Fractal Walk algorithm with random element is applied to II[1] or II, 222 respectively. 223 @* - 4, the Fractal Walk algorithm is applied to II[1] or II, respectively. 224 @* - 5, the Perturbation Walk algorithm with random element is applied to II[1] 225 or II, respectively, with radius II[3] and perturbation degree II[2]. 226 @* - 6, the Perturbation Walk algorithm is applied to II[1] or II, respectively, 227 with perturbation degree II[3]. 228 If size(#) > 0, then # contains either 1, 2 or 4 integers such that 229 @* - #[1] is the number of available processors for the computation, 230 @* - #[2] is an optional parameter for the exactness of the computation, 231 if #[2] = 1, the procedure computes a standard basis for sure, 232 @* - #[3] is the number of primes until the first lifting, 233 @* - #[4] is the constant number of primes between two liftings until 234 the computation stops. 235 RETURN: a standard basis of I if no warning appears. 236 NOTE: The procedure converts a standard basis of I (over the rational 237 numbers) from the ordering \"a(v),lp\", "dp\" or \"Dp\" to the ordering 238 \"(a(w),lp\" or \"a(1,0,...,0),lp\" by using modular methods. 239 By default the procedure computes a standard basis of I for sure, but 240 if the optional parameter #[2] = 0, it computes a standard basis of I 241 with high probability. 242 EXAMPLE: example modWalk; shows an example 243 " 244 { 245 int TT = timer; 246 int RT = rtimer; 247 int i,j,pTest,sizeTest,weighted,n1; 248 bigint N; 249 250 def R0 = basering; 251 list rl = ringlist(R0); 252 if((npars(R0) > 0) || (rl[1] > 0)) 253 { 254 ERROR("Characteristic of basering should be zero, basering should have no parameters."); 255 } 256 257 if(typeof(II) == "ideal") 258 { 259 ideal I = II; 260 kill II; 261 list II; 262 II[1] = I; 263 II[2] = 2; 264 II[3] = 2; 265 } 266 else 267 { 268 if(typeof(II) == "list" && typeof(II[1]) == "ideal") 269 { 270 ideal I = II[1]; 271 if(size(II) == 1) 272 { 273 II[2] = 2; 274 II[3] = 2; 275 } 276 if(size(II) == 2) 277 { 278 II[3] = 2; 279 } 280 281 } 282 else 283 { 284 ERROR("Unexpected type of input."); 285 } 286 } 287 288 //-------------------- Initialize optional parameters ------------------------ 289 n1 = system("--cpus"); 290 if(size(#) == 0) 291 { 292 int exactness = 1; 293 int n2 = 10; 294 int n3 = 10; 295 } 296 else 297 { 298 if(size(#) == 1) 299 { 300 if(typeof(#[1]) == "int") 301 { 302 if(#[1] < n1) 303 { 304 n1 = #[1]; 305 } 306 int exactness = 1; 307 if(n1 >= 10) 308 { 309 int n2 = n1 + 1; 310 int n3 = n1; 311 } 312 else 313 { 314 int n2 = 10; 315 int n3 = 10; 316 } 317 } 318 else 319 { 320 ERROR("Unexpected type of input."); 321 } 322 } 323 if(size(#) == 2) 324 { 325 if(typeof(#[1]) == "int" && typeof(#[2]) == "int") 326 { 327 if(#[1] < n1) 328 { 329 n1 = #[1]; 330 } 331 int exactness = #[2]; 332 if(n1 >= 10) 333 { 334 int n2 = n1 + 1; 335 int n3 = n1; 336 } 337 else 338 { 339 int n2 = 10; 340 int n3 = 10; 341 } 342 } 343 else 344 { 345 if(typeof(#[1]) == "intvec" && typeof(#[2]) == "intvec") 346 { 347 intvec curr_weight = #[1]; 348 intvec target_weight = #[2]; 349 weighted = 1; 350 int n2 = 10; 351 int n3 = 10; 352 int exactness = 1; 353 } 354 else 355 { 356 ERROR("Unexpected type of input."); 357 } 358 } 359 } 360 if(size(#) == 3) 361 { 362 if(typeof(#[1]) == "intvec" && typeof(#[2]) == "intvec" && typeof(#[3]) == "int") 363 { 364 intvec curr_weight = #[1]; 365 intvec target_weight = #[2]; 366 weighted = 1; 367 n1 = #[3]; 368 int n2 = 10; 369 int n3 = 10; 370 int exactness = 1; 371 } 372 else 373 { 374 ERROR("Unexpected type of input."); 375 } 376 } 377 if(size(#) == 4) 378 { 379 if(typeof(#[1]) == "intvec" && typeof(#[2]) == "intvec" && typeof(#[3]) == "int" 380 && typeof(#[4]) == "int") 381 { 382 intvec curr_weight = #[1]; 383 intvec target_weight = #[2]; 384 weighted = 1; 385 if(#[1] < n1) 386 { 387 n1 = #[3]; 388 } 389 int exactness = #[4]; 390 if(n1 >= 10) 391 { 392 int n2 = n1 + 1; 393 int n3 = n1; 394 } 395 else 396 { 397 int n2 = 10; 398 int n3 = 10; 399 } 400 } 401 else 402 { 403 if(typeof(#[1]) == "int" && typeof(#[2]) == "int" && typeof(#[3]) == "int" && typeof(#[4]) == "int") 404 { 405 if(#[1] < n1) 406 { 407 n1 = #[1]; 408 } 409 int exactness = #[2]; 410 if(n1 >= #[3]) 411 { 412 int n2 = n1 + 1; 413 } 414 else 415 { 416 int n2 = #[3]; 417 } 418 if(n1 >= #[4]) 419 { 420 int n3 = n1; 421 } 422 else 423 { 424 int n3 = #[4]; 425 } 426 } 427 else 428 { 429 ERROR("Unexpected type of input."); 430 } 431 } 432 } 433 if(size(#) == 6) 434 { 435 if(typeof(#[1]) == "intvec" && typeof(#[2]) == "intvec" && typeof(#[3]) == "int" && typeof(#[4]) == "int" && typeof(#[5]) == "int" && typeof(#[6]) == "int") 436 { 437 intvec curr_weight = #[1]; 438 intvec target_weight = #[2]; 439 weighted = 1; 440 if(#[3] < n1) 441 { 442 n1 = #[3]; 443 } 444 int exactness = #[4]; 445 if(n1 >= #[5]) 446 { 447 int n2 = n1 + 1; 448 } 449 else 450 { 451 int n2 = #[5]; 452 } 453 if(n1 >= #[6]) 454 { 455 int n3 = n1; 456 } 457 else 458 { 459 int n3 = #[6]; 460 } 461 } 462 else 463 { 464 ERROR("Expected list(intvec,intvec,int,int,int,int) as optional parameter list."); 465 } 466 } 467 if(size(#) == 1 || size(#) == 5 || size(#) > 6) 468 { 469 ERROR("Expected 0,2,3,4 or 5 optional arguments."); 470 } 471 } 472 if(printlevel >= 10) 473 { 474 "n1 = "+string(n1)+", n2 = "+string(n2)+", n3 = "+string(n3)+", exactness = "+string(exactness); 475 } 476 477 //------------------------- Save current options ----------------------------- 478 intvec opt = option(get); 479 //option(redSB); 480 481 //-------------------- Initialize the list of primes ------------------------- 482 int tt = timer; 483 int rt = rtimer; 484 int en = 2134567879; 485 int an = 1000000000; 486 intvec L = primeList(I,n2); 487 if(n2 > 4) 488 { 489 // L[5] = prime(random(an,en)); 490 } 491 if(printlevel >= 10) 492 { 493 "CPU-time for primeList: "+string(timer-tt)+" seconds."; 494 "Real-time for primeList: "+string(rtimer-rt)+" seconds."; 495 } 496 int h = homog(I); 497 list P,T1,T2,LL,Arguments,PP; 498 ideal J,K,H; 499 500 //------------------- parallelized Groebner Walk in positive characteristic -------------------- 501 502 if(weighted) 503 { 504 for(i=1; i<=size(L); i++) 505 { 506 Arguments[i] = list(II,L[i],variant,list(curr_weight,target_weight)); 507 } 508 } 509 else 510 { 511 for(i=1; i<=size(L); i++) 512 { 513 Arguments[i] = list(II,L[i],variant); 514 } 515 } 516 P = parallelWaitAll("modpWalk",Arguments); 517 for(i=1; i<=size(P); i++) 518 { 519 T1[i] = P[i][1]; 520 T2[i] = bigint(P[i][2]); 521 } 522 523 while(1) 524 { 525 LL = deleteUnluckyPrimes(T1,T2,h); 526 T1 = LL[1]; 527 T2 = LL[2]; 528 //------------------- Now all leading ideals are the same -------------------- 529 //------------------- Lift results to basering via farey --------------------- 530 531 tt = timer; rt = rtimer; 532 N = T2[1]; 533 for(i=2; i<=size(T2); i++) 534 { 535 N = N*T2[i]; 536 } 537 H = chinrem(T1,T2); 538 J = parallelFarey(H,N,n1); 539 //J=farey(H,N); 540 if(printlevel >= 10) 541 { 542 "CPU-time for lifting-process is "+string(timer - tt)+" seconds."; 543 "Real-time for lifting-process is "+string(rtimer - rt)+" seconds."; 544 } 545 546 //---------------- Test if we already have a standard basis of I -------------- 547 548 tt = timer; rt = rtimer; 549 pTest = pTestSB(I,J,L,variant); 550 //pTest = primeTestSB(I,J,L,variant); 551 if(printlevel >= 10) 552 { 553 "CPU-time for pTest is "+string(timer - tt)+" seconds."; 554 "Real-time for pTest is "+string(rtimer - rt)+" seconds."; 555 } 556 if(pTest) 557 { 558 if(printlevel >= 10) 559 { 560 "CPU-time for computation without final tests is "+string(timer - TT)+" seconds."; 561 "Real-time for computation without final tests is "+string(rtimer - RT)+" seconds."; 562 } 563 attrib(J,"isSB",1); 564 if(exactness == 0) 565 { 566 option(set, opt); 567 return(J); 568 } 569 else 570 { 571 tt = timer; 572 rt = rtimer; 573 sizeTest = 1 - isIdealIncluded(I,J,n1); 574 if(printlevel >= 10) 575 { 576 "CPU-time for checking if I subset <G> is "+string(timer - tt)+" seconds."; 577 "Real-time for checking if I subset <G> is "+string(rtimer - rt)+" seconds."; 578 } 579 if(sizeTest == 0) 580 { 581 tt = timer; 582 rt = rtimer; 583 K = std(J); 584 if(printlevel >= 10) 585 { 586 "CPU-time for last std-computation is "+string(timer - tt)+" seconds."; 587 "Real-time for last std-computation is "+string(rtimer - rt)+" seconds."; 588 } 589 if(size(reduce(K,J)) == 0) 590 { 591 option(set, opt); 592 return(J); 593 } 594 } 595 } 596 } 597 //-------------- We do not already have a standard basis of I, therefore do the main computation for more primes -------------- 598 599 T1 = H; 600 T2 = N; 601 j = size(L)+1; 602 tt = timer; rt = rtimer; 603 L = primeList(I,n3,L,n1); 604 if(printlevel >= 10) 605 { 606 "CPU-time for primeList: "+string(timer-tt)+" seconds."; 607 "Real-time for primeList: "+string(rtimer-rt)+" seconds."; 608 } 609 Arguments = list(); 610 PP = list(); 611 if(weighted) 612 { 613 for(i=j; i<=size(L); i++) 614 { 615 //Arguments[i-j+1] = list(II,L[i],variant,list(curr_weight,target_weight)); 616 Arguments[size(Arguments)+1] = list(II,L[i],variant,list(curr_weight,target_weight)); 617 } 618 } 619 else 620 { 621 for(i=j; i<=size(L); i++) 622 { 623 //Arguments[i-j+1] = list(II,L[i],variant); 624 Arguments[size(Arguments)+1] = list(II,L[i],variant); 625 } 626 } 627 PP = parallelWaitAll("modpWalk",Arguments); 628 if(printlevel >= 10) 629 { 630 "parallel modpWalk"; 631 } 632 for(i=1; i<=size(PP); i++) 633 { 634 //P[size(P) + 1] = PP[i]; 635 T1[size(T1) + 1] = PP[i][1]; 636 T2[size(T2) + 1] = bigint(PP[i][2]); 637 } 638 } 639 if(printlevel >= 10) 640 { 641 "CPU-time for computation with final tests is "+string(timer - TT)+" seconds."; 642 "Real-time for computation with final tests is "+string(rtimer - RT)+" seconds."; 643 } 644 } 645 646 example 647 { 648 "EXAMPLE:"; 649 echo = 2; 650 ring R=0,(x,y,z),lp; 651 ideal I=-x+y2z-z,xz+1,x2+y2-1; 652 // I is a standard basis in dp 653 ideal J = modWalk(I,1); 654 J; 655 } 656 657 //////////////////////////////////////////////////////////////////////////////// 658 static proc isIdealIncluded(ideal I, ideal J, int n1) 659 "USAGE: isIdealIncluded(I,J,int n1); I ideal, J ideal, n1 integer 660 " 661 { 662 if(n1 > 1) 663 { 664 int k; 665 list args,results; 666 for(k=1; k<=size(I); k++) 667 { 668 args[k] = list(ideal(I[k]),J,1); 669 } 670 results = parallelWaitAll("reduce",args); 671 for(k=1; k<=size(results); k++) 672 { 673 if(results[k] == 0) 674 { 675 return(1); 676 } 677 } 678 return(0); 679 } 680 else 681 { 682 if(reduce(I,J,1) == 0) 683 { 684 return(1); 685 } 686 else 687 { 688 return(0); 689 } 690 } 691 } 692 693 //////////////////////////////////////////////////////////////////////////////// 694 static proc parallelChinrem(list T1, list T2, int n1) 695 "USAGE: parallelChinrem(T1,T2); T1 list of ideals, T2 list of primes, n1 integer" 696 { 697 int i,j,k; 698 699 ideal H,J; 700 701 list arguments_chinrem,results_chinrem; 702 for(i=1; i<=size(T1); i++) 703 { 704 J = ideal(T1[i]); 705 attrib(J,"isSB",1); 706 arguments_chinrem[size(arguments_chinrem)+1] = list(list(J),T2); 707 } 708 results_chinrem = parallelWaitAll("chinrem",arguments_chinrem); 709 for(j=1; j <= size(results_chinrem); j++) 710 { 711 J = results_chinrem[j]; 712 attrib(J,"isSB",1); 713 if(isIdealIncluded(J,H,n1) == 0) 714 { 715 if(H == 0) 716 { 717 H = J; 718 } 719 else 720 { 721 H = H,J; 722 } 723 } 724 } 725 return(H); 726 } 727 728 //////////////////////////////////////////////////////////////////////////////// 729 static proc parallelFarey(ideal H, bigint N, int n1) 730 "USAGE: parallelFarey(H,N,n1); H ideal, N bigint, n1 integer 731 " 732 { 733 int i,j; 734 int ii = 1; 735 list arguments_farey,results_farey; 736 for(i=1; i<=size(H); i++) 737 { 738 for(j=1; j<=size(H[i]); j++) 739 { 740 arguments_farey[size(arguments_farey)+1] = list(H[i][j],N); 741 } 742 } 743 results_farey = parallelWaitAll("farey",arguments_farey); 744 ideal J,K; 745 poly f_farey; 746 while(ii<=size(results_farey)) 747 { 748 for(i=1; i<=size(H); i++) 749 { 750 f_farey = 0; 751 for(j=1; j<=size(H[i]); j++) 752 { 753 f_farey = f_farey + results_farey[ii][1]; 754 ii++; 755 } 756 K = ideal(f_farey); 757 attrib(K,"isSB",1); 758 attrib(J,"isSB",1); 759 if(isIdealIncluded(K,J,n1) == 0) 760 { 761 if(J == 0) 762 { 763 J = K; 764 } 765 else 766 { 767 J = J,K; 768 } 769 } 770 } 771 } 772 return(J); 773 } 774 ////////////////////////////////////////////////////////////////////////////////// 775 static proc primeTestSB(def II, ideal J, list L, int variant, list #) 776 "USAGE: primeTestSB(I,J,L,variant,#); I,J ideals, L intvec of primes, variant int 777 RETURN: 1 (resp. 0) if for a randomly chosen prime p that is not in L 778 J mod p is (resp. is not) a standard basis of I mod p 779 EXAMPLE: example primeTestSB; shows an example 780 " 781 { 782 if(typeof(II) == "ideal") 783 { 784 ideal I = II; 785 int radius = 2; 786 } 787 if(typeof(II) == "list") 788 { 789 ideal I = II[1]; 790 int radius = II[2]; 791 } 792 793 int i,j,k,p; 794 def R = basering; 795 list r = ringlist(R); 796 797 while(!j) 798 { 799 j = 1; 800 p = prime(random(1000000000,2134567879)); 801 for(i = 1; i <= size(L); i++) 802 { 803 if(p == L[i]) 804 { 805 j = 0; 806 break; 807 } 808 } 809 if(j) 810 { 811 for(i = 1; i <= ncols(I); i++) 812 { 813 for(k = 2; k <= size(I[i]); k++) 814 { 815 if((denominator(leadcoef(I[i][k])) mod p) == 0) 816 { 817 j = 0; 818 break; 819 } 820 } 821 if(!j) 822 { 823 break; 824 } 825 } 826 } 827 if(j) 828 { 829 if(!primeTest(I,p)) 830 { 831 j = 0; 832 } 833 } 834 } 835 r[1] = p; 836 def @R = ring(r); 837 setring @R; 838 ideal I = imap(R,I); 839 ideal J = imap(R,J); 840 attrib(J,"isSB",1); 841 842 int t = timer; 843 j = 1; 844 if(isIncluded(I,J) == 0) 845 { 846 j = 0; 847 } 848 if(printlevel >= 11) 849 { 850 "isIncluded(I,J) takes "+string(timer - t)+" seconds"; 851 "j = "+string(j); 852 } 853 t = timer; 854 if(j) 855 { 856 if(size(#) > 0) 857 { 858 ideal K = modpWalk(I,p,variant,#)[1]; 859 } 860 else 861 { 862 ideal K = modpWalk(I,p,variant)[1]; 863 } 864 t = timer; 865 if(isIncluded(J,K) == 0) 866 { 867 j = 0; 868 } 869 if(printlevel >= 11) 870 { 871 "isIncluded(K,J) takes "+string(timer - t)+" seconds"; 872 "j = "+string(j); 873 } 874 } 875 setring R; 876 877 return(j); 878 } 879 example 880 { "EXAMPLE:"; echo = 2; 881 intvec L = 2,3,5; 882 ring r = 0,(x,y,z),lp; 883 ideal I = x+1,x+y+1; 884 ideal J = x+1,y; 885 primeTestSB(I,I,L,1); 886 primeTestSB(I,J,L,1); 887 } 888 889 //////////////////////////////////////////////////////////////////////////////// 890 static proc pTestSB(ideal I, ideal J, list L, int variant, list #) 891 "USAGE: pTestSB(I,J,L,variant,#); I,J ideals, L intvec of primes, variant int 892 RETURN: 1 (resp. 0) if for a randomly chosen prime p that is not in L 893 J mod p is (resp. is not) a standard basis of I mod p 894 EXAMPLE: example pTestSB; shows an example 895 " 896 { 897 int i,j,k,p; 898 def R = basering; 899 list r = ringlist(R); 900 901 while(!j) 902 { 903 j = 1; 904 p = prime(random(1000000000,2134567879)); 905 for(i = 1; i <= size(L); i++) 906 { 907 if(p == L[i]) { j = 0; break; } 908 } 909 if(j) 910 { 911 for(i = 1; i <= ncols(I); i++) 912 { 913 for(k = 2; k <= size(I[i]); k++) 914 { 915 if((denominator(leadcoef(I[i][k])) mod p) == 0) { j = 0; break; } 916 } 917 if(!j){ break; } 918 } 919 } 920 if(j) 921 { 922 if(!primeTest(I,p)) { j = 0; } 923 } 924 } 925 r[1] = p; 926 def @R = ring(r); 927 setring @R; 928 ideal I = imap(R,I); 929 ideal J = imap(R,J); 930 attrib(J,"isSB",1); 931 932 int t = timer; 933 j = 1; 934 if(isIncluded(I,J) == 0) { j = 0; } 935 936 if(printlevel >= 11) 937 { 938 "isIncluded(I,J) takes "+string(timer - t)+" seconds"; 939 "j = "+string(j); 940 } 941 942 t = timer; 943 if(j) 944 { 945 if(size(#) > 0) 946 { 947 ideal K = modpStd(I,p,variant,#[1])[1]; 948 } 949 else 950 { 951 ideal K = groebner(I); 952 } 953 t = timer; 954 if(isIncluded(J,K) == 0) { j = 0; } 955 956 if(printlevel >= 11) 957 { 958 "isIncluded(J,K) takes "+string(timer - t)+" seconds"; 959 "j = "+string(j); 960 } 961 } 962 setring R; 963 return(j); 964 } 965 example 966 { "EXAMPLE:"; echo = 2; 967 intvec L = 2,3,5; 968 ring r = 0,(x,y,z),dp; 969 ideal I = x+1,x+y+1; 970 ideal J = x+1,y; 971 pTestSB(I,I,L,2); 972 pTestSB(I,J,L,2); 973 } 974 //////////////////////////////////////////////////////////////////////////////// 975 static proc mixedTest() 976 "USAGE: mixedTest(); 977 RETURN: 1 if ordering of basering is mixed, 0 else 978 EXAMPLE: example mixedTest(); shows an example 979 " 980 { 981 int i,p,m; 982 for(i = 1; i <= nvars(basering); i++) 983 { 984 if(var(i) > 1) 985 { 986 p++; 987 } 988 else 989 { 990 m++; 991 } 992 } 993 if((p > 0) && (m > 0)) { return(1); } 994 return(0); 995 } 996 example 997 { "EXAMPLE:"; echo = 2; 998 ring R1 = 0,(x,y,z),dp; 999 mixedTest(); 1000 ring R2 = 31,(x(1..4),y(1..3)),(ds(4),lp(3)); 1001 mixedTest(); 1002 ring R3 = 181,x(1..9),(dp(5),lp(4)); 1003 mixedTest(); 1004 } 139 int pertdeg = 3; 140 ideal J = modrWalk(I,radius,pertdeg); 141 J; 142 } 143 144 proc modfWalk(ideal I, list #) 145 "USAGE: modfWalk(I, [, v, w]); I ideal, v intvec, w intvec 146 RETURN: a standard basis of I 147 NOTE: The procedure computes a standard basis of I (over the rational 148 numbers) by using modular methods. 149 SEE ALSO: modular 150 EXAMPLE: example modfWalk; shows an example" 151 { 152 /* read optional parameter */ 153 if (size(#) > 0) { 154 if (size(#) == 1) { 155 intvec w = #[1]; 156 } 157 if (size(#) == 2) { 158 intvec v = #[1]; 159 intvec w = #[2]; 160 } 161 if (size(#) > 2 || typeof(#[1]) != "intvec") { 162 ERROR("wrong optional parameter"); 163 } 164 } 165 166 /* save options */ 167 intvec opt = option(get); 168 option(redSB); 169 170 /* set additional parameters */ 171 int reduction = 1; 172 int printout = 0; 173 174 /* call modular() */ 175 if (size(#) > 0) { 176 I = modular("fwalk", list(I,reduction,printout,#)); 177 } 178 else { 179 I = modular("fwalk", list(I,reduction,printout)); 180 } 181 182 /* return the result */ 183 attrib(I, "isSB", 1); 184 option(set, opt); 185 return(I); 186 } 187 example 188 { 189 "EXAMPLE:"; 190 echo = 2; 191 ring R1 = 0, (x,y,z,t), dp; 192 ideal I = 3x3+x2+1, 11y5+y3+2, 5z4+z2+4; 193 I = std(I); 194 ring R2 = 0, (x,y,z,t), lp; 195 ideal I = fetch(R1, I); 196 ideal J = modfWalk(I); 197 J; 198 } 199 200 proc modfrWalk(ideal I, int radius, list #) 201 "USAGE: modfrWalk(I, radius [, v, w]); I ideal, radius int, v intvec, w intvec 202 RETURN: a standard basis of I 203 NOTE: The procedure computes a standard basis of I (over the rational 204 numbers) by using modular methods. 205 SEE ALSO: modular 206 EXAMPLE: example modfrWalk; shows an example" 207 { 208 /* read optional parameter */ 209 if (size(#) > 0) { 210 if (size(#) == 1) { 211 intvec w = #[1]; 212 } 213 if (size(#) == 2) { 214 intvec v = #[1]; 215 intvec w = #[2]; 216 } 217 if (size(#) > 2 || typeof(#[1]) != "intvec") { 218 ERROR("wrong optional parameter"); 219 } 220 } 221 222 /* save options */ 223 intvec opt = option(get); 224 option(redSB); 225 226 /* set additional parameters */ 227 int reduction = 1; 228 int printout = 0; 229 230 /* call modular() */ 231 if (size(#) > 0) { 232 I = modular("frandwalk", list(I,radius,reduction,printout,#)); 233 } 234 else { 235 I = modular("frandwalk", list(I,radius,reduction,printout)); 236 } 237 238 /* return the result */ 239 attrib(I, "isSB", 1); 240 option(set, opt); 241 return(I); 242 } 243 example 244 { 245 "EXAMPLE:"; 246 echo = 2; 247 ring R1 = 0, (x,y,z,t), dp; 248 ideal I = 3x3+x2+1, 11y5+y3+2, 5z4+z2+4; 249 I = std(I); 250 ring R2 = 0, (x,y,z,t), lp; 251 ideal I = fetch(R1, I); 252 int radius = 2; 253 ideal J = modfrWalk(I,radius); 254 J; 255 } -
Property
mode
changed from
-
Singular/LIB/rwalk.lib
-
Property
mode
changed from
100644
to100755
r8aa977 r760258 10 10 rwalk(ideal,int,int[,intvec,intvec]); standard basis of ideal via Random Walk algorithm 11 11 rwalk(ideal,int[,intvec,intvec]); standard basis of ideal via Random Perturbation Walk algorithm 12 fr walk(ideal,int[,intvec,intvec]); standard basis of ideal via Random Fractal Walk algorithm12 frandwalk(ideal,int[,intvec,intvec]); standard basis of ideal via Random Fractal Walk algorithm 13 13 "; 14 14 … … 141 141 * Random Walk * 142 142 ****************/ 143 proc rwalk(ideal Go, int radius, int pert_deg, list #)143 proc rwalk(ideal Go, int radius, int pert_deg, int reduction, int printout, list #) 144 144 "SYNTAX: rwalk(ideal i, int radius); 145 145 if size(#)>0 then rwalk(ideal i, int radius, intvec v, intvec w); 146 intermediate Groebner bases are not reduced if reduction = 0 146 147 TYPE: ideal 147 148 PURPOSE: compute the standard basis of the ideal, calculated via … … 178 179 179 180 ideal G = fetch(xR, Go); 180 G = system("Mrwalk", G, curr_weight, target_weight, radius, pert_deg, basering);181 G = system("Mrwalk", G, curr_weight, target_weight, radius, pert_deg, reduction, printout); 181 182 182 183 setring xR; … … 196 197 int radius = 1; 197 198 int perturb_deg = 2; 198 rwalk(I,radius,perturb_deg); 199 int reduction = 0; 200 int printout = 1; 201 rwalk(I,radius,perturb_deg,reduction,printout); 199 202 } 200 203 … … 202 205 * Perturbation Walk with random element * 203 206 *****************************************/ 204 proc prwalk(ideal Go, int radius, int o_pert_deg, int t_pert_deg, list #)207 proc prwalk(ideal Go, int radius, int o_pert_deg, int t_pert_deg, int reduction, int printout, list #) 205 208 "SYNTAX: rwalk(ideal i, int radius); 206 209 if size(#)>0 then rwalk(ideal i, int radius, intvec v, intvec w); … … 227 230 OSCTW= OrderStringalp_NP("al", #); 228 231 } 232 int nP = OSCTW[1]; 229 233 string ord_str = OSCTW[2]; 230 234 intvec curr_weight = OSCTW[3]; // original weight vector … … 238 242 239 243 ideal G = fetch(xR, Go); 240 G = system("Mprwalk", G, curr_weight, target_weight, radius, o_pert_deg, t_pert_deg, basering); 244 G = system("Mprwalk", G, curr_weight, target_weight, radius, o_pert_deg, t_pert_deg, 245 nP, reduction, printout); 241 246 242 247 setring xR; … … 257 262 int o_perturb_deg = 2; 258 263 int t_perturb_deg = 2; 259 prwalk(I,radius,o_perturb_deg,t_perturb_deg); 264 int reduction = 0; 265 int printout = 2; 266 prwalk(I,radius,o_perturb_deg,t_perturb_deg,reduction,printout); 260 267 } 261 268 … … 263 270 * Fractal Walk with random element * 264 271 ************************************/ 265 proc frandwalk(ideal Go, int radius, list #)266 "SYNTAX: frwalk(ideal i, int radius );267 frwalk(ideal i, int radius, int vec v, intvec w);272 proc frandwalk(ideal Go, int radius, int reduction, int printout, list #) 273 "SYNTAX: frwalk(ideal i, int radius, int reduction, int printout); 274 frwalk(ideal i, int radius, int reduction, int printout, intvec v, intvec w); 268 275 TYPE: ideal 269 276 PURPOSE: compute the standard basis of the ideal, calculated via … … 299 306 ideal G = fetch(xR, Go); 300 307 int pert_deg = 2; 301 G = system("Mfrwalk", G, curr_weight, target_weight, radius); 308 309 G = system("Mfrwalk", G, curr_weight, target_weight, radius, reduction, printout); 302 310 303 311 setring xR; … … 314 322 ring r = 0,(z,y,x), lp; 315 323 ideal I = y3+xyz+y2z+xz3, 3+xy+x2y+y2z; 316 frandwalk(I,2); 317 } 324 int reduction = 0; 325 frandwalk(I,2,0,1); 326 } -
Property
mode
changed from
-
Singular/LIB/standard.lib
r2675bd r760258 804 804 "SYNTAX: @code{groebner (} ideal_expression @code{)} @* 805 805 @code{groebner (} module_expression @code{)} @* 806 @code{groebner (} ideal_expression@code{,} int_expression @code{)} @*807 @code{groebner (} module_expression@code{,} int_expression @code{)} @*808 806 @code{groebner (} ideal_expression@code{,} list of string_expressions 809 807 @code{)} @* 810 808 @code{groebner (} ideal_expression@code{,} list of string_expressions 811 and int_expression @code{)} @* 812 @code{groebner (} ideal_expression@code{,} int_expression @code{)} 809 and int_expression @code{)} 813 810 TYPE: type of the first argument 814 811 PURPOSE: computes a standard basis of the first argument @code{I} … … 829 826 afterwards back). 830 827 @code{option(prot)} informs about the chosen method. 831 NOTE: If an additional argument, say @code{wait}, of type int is given,832 then the computation runs for at most @code{wait} seconds.833 That is, if no result could be computed in @code{wait} seconds,834 then the computation is interrupted, 0 is returned, a warning835 message is displayed, and the global variable836 @code{Standard::groebner_error} is defined.837 This feature uses MP and hence it is available on UNIX platforms, only.838 828 HINT: Since there exists no uniform best method for computing standard 839 829 bases, and since the difference in performance of a method on … … 843 833 parameters/variables by integers, etc.). @* 844 834 SEE ALSO: stdhilb, stdfglm, std, slimgb 845 KEYWORDS: time limit on computations; MP,groebner basis computations835 KEYWORDS: groebner basis computations 846 836 EXAMPLE: example groebner; shows an example" 847 837 … … 904 894 for (k=1; k<=size(#); k++) 905 895 { 906 if (typeof(#[k]) == "int")907 {908 int wait = #[k];909 }910 896 if (typeof(#[k]) == "string") 911 897 { … … 914 900 } 915 901 } 916 917 //======= we have an argument of type int -- try to use MPfork links =======918 if ( defined(wait) == voice )919 {920 if ( system("with", "MP") )921 {922 int j = 10;923 string bs = nameof(basering);924 link l_fork = "MPtcp:fork";925 open(l_fork);926 write(l_fork, quote(system("pid")));927 int pid = read(l_fork);928 // write(l_fork, quote(groebner(eval(i))));929 write(l_fork, quote(groebner(eval(i),eval(Method))));930 //###Fehlermeldung:931 // ***dError: undef. ringorder used932 // occured at:933 934 // sleep in small intervalls for appr. one second935 if (wait > 0)936 {937 while(j < 1000000)938 {939 if (status(l_fork, "read", "ready", j)) {break;}940 j = j + j;941 }942 }943 944 // sleep in intervalls of one second from now on945 j = 1;946 while (j < wait)947 {948 if (status(l_fork, "read", "ready", 1000000)) {break;}949 j = j + 1;950 }951 952 if (status(l_fork, "read", "ready"))953 {954 def result = read(l_fork);955 if (bs != nameof(basering))956 {957 def PP = basering;958 setring P;959 def result = imap(PP, result);960 kill PP;961 }962 if (defined(groebner_error)==1)963 {964 kill groebner_error;965 }966 kill l_fork;967 }968 else969 {970 ideal result;971 if (! defined(groebner_error))972 {973 int groebner_error = 1;974 export groebner_error;975 }976 "** groebner did not finish";977 j = system("sh", "kill " + string(pid));978 }979 return (result);980 }981 else982 {983 "** groebner with a time limit on computation is not supported984 in this configuration";985 }986 }987 988 //=========== we are still here -- do the actual computation =============989 902 990 903 //--------------------- save data from basering --------------------------- … … 1065 978 if( find(method,"hilb") && !find(method,"fglm") ) 1066 979 { 1067 conversion = "hilb"; // $Id$980 conversion = "hilb"; 1068 981 } 1069 982 if( find(method,"fglm") && !find(method,"hilb") ) 1070 983 { 1071 conversion = "fglm"; // $Id$984 conversion = "fglm"; 1072 985 } 1073 986 if( find(method,"fglm") && find(method,"hilb") ) 1074 987 { 1075 conversion = "hilborfglm"; // $Id$988 conversion = "hilborfglm"; 1076 989 } 1077 990 if( !find(method,"fglm") && !find(method,"hilb") ) 1078 991 { 1079 conversion = "no"; // $Id$992 conversion = "no"; 1080 993 } 1081 994 … … 2532 2445 static proc mod_init() 2533 2446 { 2447 if(!defined(Singmathic)) 2448 { 2449 load("singmathic.so","try"); 2450 } 2534 2451 //int pagelength=24; 2535 2452 //exportto(Top,pagelength); -
Singular/LIB/swalk.lib
-
Property
mode
changed from
100644
to100755
-
Property
mode
changed from
-
Singular/dyn_modules/Order/nforder_elt.cc
r2675bd r760258 20 20 return ((nforder *)r->data)->String(); 21 21 } 22 static void EltWrite(number &a, const coeffs r)22 static void EltWrite(number a, const coeffs r) 23 23 { 24 24 bigintmat * b = (bigintmat*)a; -
Singular/dyn_modules/singmathic/Makefile.am
r2675bd r760258 20 20 singmathic_la_SOURCES = singmathic.cc 21 21 singmathic_la_CPPFLAGS = ${MYINCLUDES} ${P_PROCS_CPPFLAGS_COMMON} 22 singmathic_la_LDFLAGS = ${P_PROCS_MODULE_LDFLAGS} 22 singmathic_la_LDFLAGS = ${P_PROCS_MODULE_LDFLAGS} ${MATHIC_LIBS} 23 23 24 24 # AM_COLOR_TESTS=always -
Singular/dyn_modules/syzextra/mod_main.cc
r2675bd r760258 67 67 BEGIN_NAMESPACE_NONAME 68 68 69 // returns TRUE, if idRankFreeModule(m) > 0 ??? 70 /// test whether this input has vectors among entries or no enties 71 /// result must be FALSE for only 0-entries 72 static BOOLEAN id_IsModule(ideal id, ring r) 73 { 74 id_Test(id, r); 75 76 if( id->rank != 1 ) return TRUE; 77 78 if (rRing_has_Comp(r)) 79 { 80 const int l = IDELEMS(id); 81 82 for (int j=0; j<l; j++) 83 if (id->m[j] != NULL && p_GetComp(id->m[j], r) > 0) 84 return TRUE; 85 86 return FALSE; // rank: 1, only zero or no entries? can be an ideal OR module... BUT in the use-case should better be an ideal! 87 } 88 89 return FALSE; 90 } 91 92 93 69 94 70 95 static inline void NoReturn(leftv& res) … … 1525 1550 const int iLimit = r->typ[pos].data.is.limit; 1526 1551 const ideal F = r->typ[pos].data.is.F; 1552 1527 1553 ideal FF = id_Copy(F, r); 1528 1529 1530 1554 1531 1555 lists l=(lists)omAllocBin(slists_bin); … … 1538 1562 // l->m[1].rtyp = MODUL_CMD; 1539 1563 1540 if( id IsModule(FF, r) )1564 if( id_IsModule(FF, r) ) // ??? 1541 1565 { 1542 1566 l->m[1].rtyp = MODUL_CMD; … … 1824 1848 { 1825 1849 iComp = (int)((long)(h->Data())); 1826 } else 1850 } 1851 else 1827 1852 { 1828 1853 if( (!isSyz) && (-1 == posIS) ) -
Singular/extra.cc
r2675bd r760258 65 65 #include <polys/weight.h> 66 66 67 67 #include <coeffs/bigintmat.h> 68 68 #include <kernel/fast_mult.h> 69 69 #include <kernel/digitech.h> … … 3772 3772 } 3773 3773 else 3774 /*==================== LU for bigintmat =================*/ 3775 #ifdef SINGULAR_4_1 3776 if(strcmp(sys_cmd,"LU")==0) 3777 { 3778 if ((h!=NULL) && (h->Typ()==CMATRIX_CMD)) 3779 { 3780 // get the argument: 3781 bigintmat *b=(bigintmat *)h->Data(); 3782 // just for tests: simply transpose 3783 bigintmat *bb=b->transpose(); 3784 // return the result: 3785 res->rtyp=CMATRIX_CMD; 3786 res->data=(char*)bb; 3787 return FALSE; 3788 } 3789 else 3790 { 3791 WerrorS("system(\"LU\",<cmatrix>) expected"); 3792 return TRUE; 3793 } 3794 } 3795 else 3796 #endif 3774 3797 /*==================== Error =================*/ 3775 3798 Werror( "(extended) system(\"%s\",...) %s", sys_cmd, feNotImplemented ); -
Singular/grammar.cc
r2675bd r760258 239 239 240 240 /* Line 189 of yacc.c */ 241 #line 24 3"grammar.cc"241 #line 242 "grammar.cc" 242 242 243 243 /* Enabling traces. */ … … 412 412 413 413 /* Line 264 of yacc.c */ 414 #line 41 6"grammar.cc"414 #line 415 "grammar.cc" 415 415 416 416 #ifdef short … … 792 792 static const yytype_uint16 yyrline[] = 793 793 { 794 0, 36 4, 364, 366, 400, 401, 403, 405, 409, 414,795 41 6, 467, 468, 469, 470, 471, 472, 473, 474, 478,796 48 1, 482, 483, 484, 485, 486, 487, 488, 489, 492,797 49 9, 504, 508, 512, 516, 520, 533, 561, 585, 591,798 59 7, 601, 605, 609, 613, 617, 621, 625, 629, 633,799 63 7, 641, 645, 649, 653, 657, 661, 665, 669, 673,800 67 7, 683, 687, 691, 695, 699, 706, 717, 723, 728,801 72 9, 730, 734, 738, 742, 746, 750, 754, 758, 762,802 76 6, 783, 790, 789, 807, 815, 823, 832, 836, 840,803 84 4, 848, 852, 856, 860, 864, 868, 872, 876, 880,804 89 2, 899, 900, 919, 920, 932, 937, 942, 946, 950,805 9 90, 1016, 1037, 1045, 1049, 1050, 1064, 1072, 1081, 1126,806 112 7, 1136, 1137, 1143, 1150, 1152, 1154, 1164, 1163, 1171,807 117 6, 1183, 1191, 1203, 1219, 1238, 1242, 1246, 1251, 1255,808 125 9, 1263, 1267, 1272, 1278, 1284, 1290, 1296, 1302, 1308,809 13 20, 1327, 1331, 1368, 1375, 1383, 1389, 1389, 1392, 1464,810 146 8, 1497, 1510, 1527, 1536, 1541, 1549, 1561, 1580, 1590,811 160 9, 1632, 1638, 1650, 1656794 0, 363, 363, 365, 399, 400, 402, 404, 408, 413, 795 415, 466, 467, 468, 469, 470, 471, 472, 473, 477, 796 480, 481, 482, 483, 484, 485, 486, 487, 488, 491, 797 498, 503, 507, 511, 515, 519, 532, 560, 584, 590, 798 596, 600, 604, 608, 612, 616, 620, 624, 628, 632, 799 636, 640, 644, 648, 652, 656, 660, 664, 668, 672, 800 676, 682, 686, 690, 694, 698, 705, 716, 722, 727, 801 728, 729, 733, 737, 741, 745, 749, 753, 757, 761, 802 765, 782, 789, 788, 806, 814, 822, 831, 835, 839, 803 843, 847, 851, 855, 859, 863, 867, 871, 875, 879, 804 891, 898, 899, 918, 919, 931, 936, 941, 945, 949, 805 985, 1011, 1032, 1040, 1044, 1045, 1059, 1067, 1076, 1121, 806 1122, 1131, 1132, 1138, 1145, 1147, 1149, 1159, 1158, 1166, 807 1171, 1178, 1186, 1198, 1214, 1233, 1237, 1241, 1246, 1250, 808 1254, 1258, 1262, 1267, 1273, 1279, 1285, 1291, 1297, 1303, 809 1315, 1322, 1326, 1363, 1370, 1378, 1384, 1384, 1387, 1459, 810 1463, 1492, 1505, 1522, 1531, 1536, 1544, 1556, 1575, 1585, 811 1604, 1627, 1633, 1645, 1651 812 812 }; 813 813 #endif … … 2427 2427 2428 2428 /* Line 1464 of yacc.c */ 2429 #line 36 7"grammar.y"2429 #line 366 "grammar.y" 2430 2430 { 2431 2431 if (timerv) … … 2463 2463 2464 2464 /* Line 1464 of yacc.c */ 2465 #line 40 2"grammar.y"2465 #line 401 "grammar.y" 2466 2466 {currentVoice->ifsw=0;;} 2467 2467 break; … … 2470 2470 2471 2471 /* Line 1464 of yacc.c */ 2472 #line 40 4"grammar.y"2472 #line 403 "grammar.y" 2473 2473 { (yyvsp[(1) - (2)].lv).CleanUp(); currentVoice->ifsw=0;;} 2474 2474 break; … … 2477 2477 2478 2478 /* Line 1464 of yacc.c */ 2479 #line 40 6"grammar.y"2479 #line 405 "grammar.y" 2480 2480 { 2481 2481 YYACCEPT; … … 2486 2486 2487 2487 /* Line 1464 of yacc.c */ 2488 #line 4 10"grammar.y"2488 #line 409 "grammar.y" 2489 2489 { 2490 2490 currentVoice->ifsw=0; … … 2496 2496 2497 2497 /* Line 1464 of yacc.c */ 2498 #line 41 5"grammar.y"2498 #line 414 "grammar.y" 2499 2499 {currentVoice->ifsw=0;;} 2500 2500 break; … … 2503 2503 2504 2504 /* Line 1464 of yacc.c */ 2505 #line 41 7"grammar.y"2505 #line 416 "grammar.y" 2506 2506 { 2507 2507 #ifdef SIQ … … 2557 2557 2558 2558 /* Line 1464 of yacc.c */ 2559 #line 47 5"grammar.y"2559 #line 474 "grammar.y" 2560 2560 {if (currentVoice!=NULL) currentVoice->ifsw=0;;} 2561 2561 break; … … 2564 2564 2565 2565 /* Line 1464 of yacc.c */ 2566 #line 47 8"grammar.y"2566 #line 477 "grammar.y" 2567 2567 { omFree((ADDRESS)(yyvsp[(2) - (2)].name)); ;} 2568 2568 break; … … 2571 2571 2572 2572 /* Line 1464 of yacc.c */ 2573 #line 49 3"grammar.y"2573 #line 492 "grammar.y" 2574 2574 { 2575 2575 if(iiAssign(&(yyvsp[(1) - (2)].lv),&(yyvsp[(2) - (2)].lv))) YYERROR; … … 2580 2580 2581 2581 /* Line 1464 of yacc.c */ 2582 #line 500"grammar.y"2582 #line 499 "grammar.y" 2583 2583 { 2584 2584 if (currRing==NULL) MYYERROR("no ring active"); … … 2590 2590 2591 2591 /* Line 1464 of yacc.c */ 2592 #line 50 5"grammar.y"2592 #line 504 "grammar.y" 2593 2593 { 2594 2594 syMake(&(yyval.lv),(yyvsp[(1) - (1)].name)); … … 2599 2599 2600 2600 /* Line 1464 of yacc.c */ 2601 #line 50 9"grammar.y"2601 #line 508 "grammar.y" 2602 2602 { 2603 2603 if(iiExprArith2(&(yyval.lv), &(yyvsp[(1) - (3)].lv), COLONCOLON, &(yyvsp[(3) - (3)].lv))) YYERROR; … … 2608 2608 2609 2609 /* Line 1464 of yacc.c */ 2610 #line 51 3"grammar.y"2610 #line 512 "grammar.y" 2611 2611 { 2612 2612 if(iiExprArith2(&(yyval.lv), &(yyvsp[(1) - (3)].lv), '.', &(yyvsp[(3) - (3)].lv))) YYERROR; … … 2617 2617 2618 2618 /* Line 1464 of yacc.c */ 2619 #line 51 7"grammar.y"2619 #line 516 "grammar.y" 2620 2620 { 2621 2621 if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'(')) YYERROR; … … 2626 2626 2627 2627 /* Line 1464 of yacc.c */ 2628 #line 52 1"grammar.y"2628 #line 520 "grammar.y" 2629 2629 { 2630 2630 if ((yyvsp[(1) - (4)].lv).rtyp==UNKNOWN) … … 2644 2644 2645 2645 /* Line 1464 of yacc.c */ 2646 #line 53 4"grammar.y"2646 #line 533 "grammar.y" 2647 2647 { 2648 2648 if (currRingHdl==NULL) MYYERROR("no ring active"); … … 2677 2677 2678 2678 /* Line 1464 of yacc.c */ 2679 #line 56 2"grammar.y"2679 #line 561 "grammar.y" 2680 2680 { 2681 2681 memset(&(yyval.lv),0,sizeof((yyval.lv))); … … 2706 2706 2707 2707 /* Line 1464 of yacc.c */ 2708 #line 58 6"grammar.y"2708 #line 585 "grammar.y" 2709 2709 { 2710 2710 memset(&(yyval.lv),0,sizeof((yyval.lv))); … … 2717 2717 2718 2718 /* Line 1464 of yacc.c */ 2719 #line 59 2"grammar.y"2719 #line 591 "grammar.y" 2720 2720 { 2721 2721 memset(&(yyval.lv),0,sizeof((yyval.lv))); … … 2728 2728 2729 2729 /* Line 1464 of yacc.c */ 2730 #line 59 8"grammar.y"2730 #line 597 "grammar.y" 2731 2731 { 2732 2732 if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2737 2737 2738 2738 /* Line 1464 of yacc.c */ 2739 #line 60 2"grammar.y"2739 #line 601 "grammar.y" 2740 2740 { 2741 2741 if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2746 2746 2747 2747 /* Line 1464 of yacc.c */ 2748 #line 60 6"grammar.y"2748 #line 605 "grammar.y" 2749 2749 { 2750 2750 if(iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2755 2755 2756 2756 /* Line 1464 of yacc.c */ 2757 #line 6 10"grammar.y"2757 #line 609 "grammar.y" 2758 2758 { 2759 2759 if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR; … … 2764 2764 2765 2765 /* Line 1464 of yacc.c */ 2766 #line 61 4"grammar.y"2766 #line 613 "grammar.y" 2767 2767 { 2768 2768 if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2773 2773 2774 2774 /* Line 1464 of yacc.c */ 2775 #line 61 8"grammar.y"2775 #line 617 "grammar.y" 2776 2776 { 2777 2777 if(iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2782 2782 2783 2783 /* Line 1464 of yacc.c */ 2784 #line 62 2"grammar.y"2784 #line 621 "grammar.y" 2785 2785 { 2786 2786 if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR; … … 2791 2791 2792 2792 /* Line 1464 of yacc.c */ 2793 #line 62 6"grammar.y"2793 #line 625 "grammar.y" 2794 2794 { 2795 2795 if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2800 2800 2801 2801 /* Line 1464 of yacc.c */ 2802 #line 6 30"grammar.y"2802 #line 629 "grammar.y" 2803 2803 { 2804 2804 if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2809 2809 2810 2810 /* Line 1464 of yacc.c */ 2811 #line 63 4"grammar.y"2811 #line 633 "grammar.y" 2812 2812 { 2813 2813 if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2818 2818 2819 2819 /* Line 1464 of yacc.c */ 2820 #line 63 8"grammar.y"2820 #line 637 "grammar.y" 2821 2821 { 2822 2822 if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2827 2827 2828 2828 /* Line 1464 of yacc.c */ 2829 #line 64 2"grammar.y"2829 #line 641 "grammar.y" 2830 2830 { 2831 2831 if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR; … … 2836 2836 2837 2837 /* Line 1464 of yacc.c */ 2838 #line 64 6"grammar.y"2838 #line 645 "grammar.y" 2839 2839 { 2840 2840 if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR; … … 2845 2845 2846 2846 /* Line 1464 of yacc.c */ 2847 #line 6 50"grammar.y"2847 #line 649 "grammar.y" 2848 2848 { 2849 2849 if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR; … … 2854 2854 2855 2855 /* Line 1464 of yacc.c */ 2856 #line 65 4"grammar.y"2856 #line 653 "grammar.y" 2857 2857 { 2858 2858 if(iiExprArith2(&(yyval.lv),&(yyvsp[(3) - (6)].lv),(yyvsp[(1) - (6)].i),&(yyvsp[(5) - (6)].lv),TRUE)) YYERROR; … … 2863 2863 2864 2864 /* Line 1464 of yacc.c */ 2865 #line 65 8"grammar.y"2865 #line 657 "grammar.y" 2866 2866 { 2867 2867 if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR; … … 2872 2872 2873 2873 /* Line 1464 of yacc.c */ 2874 #line 66 2"grammar.y"2874 #line 661 "grammar.y" 2875 2875 { 2876 2876 if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR; … … 2881 2881 2882 2882 /* Line 1464 of yacc.c */ 2883 #line 66 6"grammar.y"2883 #line 665 "grammar.y" 2884 2884 { 2885 2885 if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR; … … 2890 2890 2891 2891 /* Line 1464 of yacc.c */ 2892 #line 6 70"grammar.y"2892 #line 669 "grammar.y" 2893 2893 { 2894 2894 if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR; … … 2899 2899 2900 2900 /* Line 1464 of yacc.c */ 2901 #line 67 4"grammar.y"2901 #line 673 "grammar.y" 2902 2902 { 2903 2903 if(iiExprArithM(&(yyval.lv),NULL,(yyvsp[(1) - (3)].i))) YYERROR; … … 2908 2908 2909 2909 /* Line 1464 of yacc.c */ 2910 #line 67 8"grammar.y"2910 #line 677 "grammar.y" 2911 2911 { 2912 2912 int b=iiExprArithM(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i)); // handle branchTo … … 2919 2919 2920 2920 /* Line 1464 of yacc.c */ 2921 #line 68 4"grammar.y"2921 #line 683 "grammar.y" 2922 2922 { 2923 2923 if(iiExprArith3(&(yyval.lv),(yyvsp[(1) - (8)].i),&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR; … … 2928 2928 2929 2929 /* Line 1464 of yacc.c */ 2930 #line 68 8"grammar.y"2930 #line 687 "grammar.y" 2931 2931 { 2932 2932 if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),(yyvsp[(1) - (4)].i))) YYERROR; … … 2937 2937 2938 2938 /* Line 1464 of yacc.c */ 2939 #line 69 2"grammar.y"2939 #line 691 "grammar.y" 2940 2940 { 2941 2941 if(iiExprArith3(&(yyval.lv),RING_CMD,&(yyvsp[(3) - (8)].lv),&(yyvsp[(5) - (8)].lv),&(yyvsp[(7) - (8)].lv))) YYERROR; … … 2946 2946 2947 2947 /* Line 1464 of yacc.c */ 2948 #line 69 6"grammar.y"2948 #line 695 "grammar.y" 2949 2949 { 2950 2950 if(iiExprArith1(&(yyval.lv),&(yyvsp[(3) - (4)].lv),RING_CMD)) YYERROR; … … 2955 2955 2956 2956 /* Line 1464 of yacc.c */ 2957 #line 700"grammar.y"2957 #line 699 "grammar.y" 2958 2958 { 2959 2959 if (iiARROW(&(yyval.lv),(yyvsp[(1) - (3)].name),(yyvsp[(3) - (3)].name))) YYERROR; … … 2964 2964 2965 2965 /* Line 1464 of yacc.c */ 2966 #line 70 7"grammar.y"2966 #line 706 "grammar.y" 2967 2967 { 2968 2968 leftv v = &(yyvsp[(1) - (3)].lv); … … 2980 2980 2981 2981 /* Line 1464 of yacc.c */ 2982 #line 71 8"grammar.y"2982 #line 717 "grammar.y" 2983 2983 { 2984 2984 (yyval.lv) = (yyvsp[(1) - (1)].lv); … … 2989 2989 2990 2990 /* Line 1464 of yacc.c */ 2991 #line 72 4"grammar.y"2991 #line 723 "grammar.y" 2992 2992 { 2993 2993 /*if ($1.typ == eunknown) YYERROR;*/ … … 2999 2999 3000 3000 /* Line 1464 of yacc.c */ 3001 #line 727 "grammar.y" 3002 { (yyval.lv) = (yyvsp[(1) - (1)].lv); ;} 3003 break; 3004 3005 case 70: 3006 3007 /* Line 1464 of yacc.c */ 3001 3008 #line 728 "grammar.y" 3002 { (yyval.lv) = (yyvsp[(1) - (1)].lv); ;}3003 break;3004 3005 case 70:3006 3007 /* Line 1464 of yacc.c */3008 #line 729 "grammar.y"3009 3009 { (yyval.lv) = (yyvsp[(2) - (3)].lv); ;} 3010 3010 break; … … 3013 3013 3014 3014 /* Line 1464 of yacc.c */ 3015 #line 73 1"grammar.y"3015 #line 730 "grammar.y" 3016 3016 { 3017 3017 if(iiExprArith3(&(yyval.lv),'[',&(yyvsp[(1) - (6)].lv),&(yyvsp[(3) - (6)].lv),&(yyvsp[(5) - (6)].lv))) YYERROR; … … 3022 3022 3023 3023 /* Line 1464 of yacc.c */ 3024 #line 73 5"grammar.y"3024 #line 734 "grammar.y" 3025 3025 { 3026 3026 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (4)].lv),'[',&(yyvsp[(3) - (4)].lv))) YYERROR; … … 3031 3031 3032 3032 /* Line 1464 of yacc.c */ 3033 #line 73 9"grammar.y"3033 #line 738 "grammar.y" 3034 3034 { 3035 3035 if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR; … … 3040 3040 3041 3041 /* Line 1464 of yacc.c */ 3042 #line 74 3"grammar.y"3042 #line 742 "grammar.y" 3043 3043 { 3044 3044 if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR; … … 3049 3049 3050 3050 /* Line 1464 of yacc.c */ 3051 #line 74 7"grammar.y"3051 #line 746 "grammar.y" 3052 3052 { 3053 3053 if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR; … … 3058 3058 3059 3059 /* Line 1464 of yacc.c */ 3060 #line 75 1"grammar.y"3060 #line 750 "grammar.y" 3061 3061 { 3062 3062 if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR; … … 3067 3067 3068 3068 /* Line 1464 of yacc.c */ 3069 #line 75 5"grammar.y"3069 #line 754 "grammar.y" 3070 3070 { 3071 3071 if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), (yyvsp[(5) - (6)].i), NULL)) YYERROR; … … 3076 3076 3077 3077 /* Line 1464 of yacc.c */ 3078 #line 75 9"grammar.y"3078 #line 758 "grammar.y" 3079 3079 { 3080 3080 if (iiApply(&(yyval.lv), &(yyvsp[(3) - (6)].lv), 0, &(yyvsp[(5) - (6)].lv))) YYERROR; … … 3085 3085 3086 3086 /* Line 1464 of yacc.c */ 3087 #line 76 3"grammar.y"3087 #line 762 "grammar.y" 3088 3088 { 3089 3089 (yyval.lv)=(yyvsp[(2) - (3)].lv); … … 3094 3094 3095 3095 /* Line 1464 of yacc.c */ 3096 #line 76 7"grammar.y"3096 #line 766 "grammar.y" 3097 3097 { 3098 3098 #ifdef SIQ … … 3116 3116 3117 3117 /* Line 1464 of yacc.c */ 3118 #line 78 4"grammar.y"3118 #line 783 "grammar.y" 3119 3119 { 3120 3120 iiTestAssume(&(yyvsp[(2) - (5)].lv),&(yyvsp[(4) - (5)].lv)); … … 3127 3127 3128 3128 /* Line 1464 of yacc.c */ 3129 #line 7 90"grammar.y"3129 #line 789 "grammar.y" 3130 3130 { 3131 3131 #ifdef SIQ … … 3138 3138 3139 3139 /* Line 1464 of yacc.c */ 3140 #line 79 6"grammar.y"3140 #line 795 "grammar.y" 3141 3141 { 3142 3142 #ifdef SIQ … … 3153 3153 3154 3154 /* Line 1464 of yacc.c */ 3155 #line 80 8"grammar.y"3155 #line 807 "grammar.y" 3156 3156 { 3157 3157 #ifdef SIQ … … 3164 3164 3165 3165 /* Line 1464 of yacc.c */ 3166 #line 81 6"grammar.y"3166 #line 815 "grammar.y" 3167 3167 { 3168 3168 #ifdef SIQ … … 3175 3175 3176 3176 /* Line 1464 of yacc.c */ 3177 #line 82 4"grammar.y"3177 #line 823 "grammar.y" 3178 3178 { 3179 3179 #ifdef SIQ … … 3186 3186 3187 3187 /* Line 1464 of yacc.c */ 3188 #line 83 3"grammar.y"3188 #line 832 "grammar.y" 3189 3189 { 3190 3190 if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (2)].lv),PLUSPLUS)) YYERROR; … … 3195 3195 3196 3196 /* Line 1464 of yacc.c */ 3197 #line 83 7"grammar.y"3197 #line 836 "grammar.y" 3198 3198 { 3199 3199 if(iiExprArith1(&(yyval.lv),&(yyvsp[(1) - (2)].lv),MINUSMINUS)) YYERROR; … … 3204 3204 3205 3205 /* Line 1464 of yacc.c */ 3206 #line 84 1"grammar.y"3206 #line 840 "grammar.y" 3207 3207 { 3208 3208 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'+',&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3213 3213 3214 3214 /* Line 1464 of yacc.c */ 3215 #line 84 5"grammar.y"3215 #line 844 "grammar.y" 3216 3216 { 3217 3217 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'-',&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3222 3222 3223 3223 /* Line 1464 of yacc.c */ 3224 #line 84 9"grammar.y"3224 #line 848 "grammar.y" 3225 3225 { 3226 3226 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3231 3231 3232 3232 /* Line 1464 of yacc.c */ 3233 #line 85 3"grammar.y"3233 #line 852 "grammar.y" 3234 3234 { 3235 3235 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),'^',&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3240 3240 3241 3241 /* Line 1464 of yacc.c */ 3242 #line 85 7"grammar.y"3242 #line 856 "grammar.y" 3243 3243 { 3244 3244 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3249 3249 3250 3250 /* Line 1464 of yacc.c */ 3251 #line 86 1"grammar.y"3251 #line 860 "grammar.y" 3252 3252 { 3253 3253 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),(yyvsp[(2) - (3)].i),&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3258 3258 3259 3259 /* Line 1464 of yacc.c */ 3260 #line 86 5"grammar.y"3260 #line 864 "grammar.y" 3261 3261 { 3262 3262 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),NOTEQUAL,&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3267 3267 3268 3268 /* Line 1464 of yacc.c */ 3269 #line 86 9"grammar.y"3269 #line 868 "grammar.y" 3270 3270 { 3271 3271 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),EQUAL_EQUAL,&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3276 3276 3277 3277 /* Line 1464 of yacc.c */ 3278 #line 87 3"grammar.y"3278 #line 872 "grammar.y" 3279 3279 { 3280 3280 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),DOTDOT,&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3285 3285 3286 3286 /* Line 1464 of yacc.c */ 3287 #line 87 7"grammar.y"3287 #line 876 "grammar.y" 3288 3288 { 3289 3289 if(iiExprArith2(&(yyval.lv),&(yyvsp[(1) - (3)].lv),':',&(yyvsp[(3) - (3)].lv))) YYERROR; … … 3294 3294 3295 3295 /* Line 1464 of yacc.c */ 3296 #line 88 1"grammar.y"3296 #line 880 "grammar.y" 3297 3297 { 3298 3298 if (siq>0) … … 3311 3311 3312 3312 /* Line 1464 of yacc.c */ 3313 #line 89 3"grammar.y"3313 #line 892 "grammar.y" 3314 3314 { 3315 3315 if(iiExprArith1(&(yyval.lv),&(yyvsp[(2) - (2)].lv),'-')) YYERROR; … … 3320 3320 3321 3321 /* Line 1464 of yacc.c */ 3322 #line 89 9"grammar.y"3322 #line 898 "grammar.y" 3323 3323 { (yyval.lv) = (yyvsp[(1) - (2)].lv); ;} 3324 3324 break; … … 3327 3327 3328 3328 /* Line 1464 of yacc.c */ 3329 #line 90 1"grammar.y"3329 #line 900 "grammar.y" 3330 3330 { 3331 3331 if ((yyvsp[(1) - (2)].lv).rtyp==0) … … 3347 3347 3348 3348 /* Line 1464 of yacc.c */ 3349 #line 92 1"grammar.y"3349 #line 920 "grammar.y" 3350 3350 { 3351 3351 if ((yyvsp[(2) - (3)].lv).Typ()!=STRING_CMD) … … 3361 3361 3362 3362 /* Line 1464 of yacc.c */ 3363 #line 93 3"grammar.y"3363 #line 932 "grammar.y" 3364 3364 { 3365 3365 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot))) … … 3371 3371 3372 3372 /* Line 1464 of yacc.c */ 3373 #line 93 8"grammar.y"3373 #line 937 "grammar.y" 3374 3374 { 3375 3375 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot))) … … 3381 3381 3382 3382 /* Line 1464 of yacc.c */ 3383 #line 94 3"grammar.y"3383 #line 942 "grammar.y" 3384 3384 { 3385 3385 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&(currRing->idroot), TRUE)) YYERROR; … … 3390 3390 3391 3391 /* Line 1464 of yacc.c */ 3392 #line 94 7"grammar.y"3392 #line 946 "grammar.y" 3393 3393 { 3394 3394 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&(currRing->idroot), TRUE)) YYERROR; … … 3399 3399 3400 3400 /* Line 1464 of yacc.c */ 3401 #line 95 1"grammar.y"3401 #line 950 "grammar.y" 3402 3402 { 3403 3403 int r; TESTSETINT((yyvsp[(4) - (8)].lv),r); 3404 3404 int c; TESTSETINT((yyvsp[(7) - (8)].lv),c); 3405 if (r < 1)3406 MYYERROR("rows must be greater than 0");3407 if (c < 0)3408 MYYERROR("cols must be greater than -1");3409 3405 leftv v; 3410 3406 idhdl h; … … 3444 3440 3445 3441 /* Line 1464 of yacc.c */ 3446 #line 9 91"grammar.y"3442 #line 986 "grammar.y" 3447 3443 { 3448 3444 if ((yyvsp[(1) - (2)].i) == MATRIX_CMD) … … 3475 3471 3476 3472 /* Line 1464 of yacc.c */ 3477 #line 101 7"grammar.y"3473 #line 1012 "grammar.y" 3478 3474 { 3479 3475 int t=(yyvsp[(1) - (3)].lv).Typ(); … … 3501 3497 3502 3498 /* Line 1464 of yacc.c */ 3503 #line 103 8"grammar.y"3499 #line 1033 "grammar.y" 3504 3500 { 3505 3501 if (iiDeclCommand(&(yyval.lv),&(yyvsp[(2) - (2)].lv),myynest,(yyvsp[(1) - (2)].i),&((yyvsp[(2) - (2)].lv).req_packhdl->idroot))) … … 3511 3507 3512 3508 /* Line 1464 of yacc.c */ 3513 #line 10 51"grammar.y"3509 #line 1046 "grammar.y" 3514 3510 { 3515 3511 leftv v = &(yyvsp[(2) - (5)].lv); … … 3527 3523 3528 3524 /* Line 1464 of yacc.c */ 3529 #line 106 5"grammar.y"3525 #line 1060 "grammar.y" 3530 3526 { 3531 3527 // let rInit take care of any errors … … 3537 3533 3538 3534 /* Line 1464 of yacc.c */ 3539 #line 10 73"grammar.y"3535 #line 1068 "grammar.y" 3540 3536 { 3541 3537 memset(&(yyval.lv),0,sizeof((yyval.lv))); … … 3551 3547 3552 3548 /* Line 1464 of yacc.c */ 3553 #line 10 82"grammar.y"3549 #line 1077 "grammar.y" 3554 3550 { 3555 3551 memset(&(yyval.lv),0,sizeof((yyval.lv))); … … 3598 3594 3599 3595 /* Line 1464 of yacc.c */ 3600 #line 112 8"grammar.y"3596 #line 1123 "grammar.y" 3601 3597 { 3602 3598 (yyval.lv) = (yyvsp[(1) - (3)].lv); … … 3609 3605 3610 3606 /* Line 1464 of yacc.c */ 3611 #line 113 8"grammar.y"3607 #line 1133 "grammar.y" 3612 3608 { 3613 3609 (yyval.lv) = (yyvsp[(2) - (3)].lv); … … 3618 3614 3619 3615 /* Line 1464 of yacc.c */ 3620 #line 11 44"grammar.y"3616 #line 1139 "grammar.y" 3621 3617 { 3622 3618 expected_parms = TRUE; … … 3627 3623 3628 3624 /* Line 1464 of yacc.c */ 3629 #line 11 51"grammar.y"3625 #line 1146 "grammar.y" 3630 3626 { (yyval.i) = (yyvsp[(1) - (1)].i); ;} 3631 3627 break; … … 3634 3630 3635 3631 /* Line 1464 of yacc.c */ 3636 #line 11 53"grammar.y"3632 #line 1148 "grammar.y" 3637 3633 { (yyval.i) = (yyvsp[(1) - (1)].i); ;} 3638 3634 break; … … 3641 3637 3642 3638 /* Line 1464 of yacc.c */ 3643 #line 115 5"grammar.y"3639 #line 1150 "grammar.y" 3644 3640 { (yyval.i) = (yyvsp[(1) - (1)].i); ;} 3645 3641 break; … … 3648 3644 3649 3645 /* Line 1464 of yacc.c */ 3650 #line 11 64"grammar.y"3646 #line 1159 "grammar.y" 3651 3647 { if ((yyvsp[(1) - (2)].i) != '<') YYERROR; 3652 3648 if((feFilePending=feFopen((yyvsp[(2) - (2)].name),"r",NULL,TRUE))==NULL) YYERROR; ;} … … 3656 3652 3657 3653 /* Line 1464 of yacc.c */ 3654 #line 1162 "grammar.y" 3655 { newFile((yyvsp[(2) - (4)].name),feFilePending); ;} 3656 break; 3657 3658 case 129: 3659 3660 /* Line 1464 of yacc.c */ 3658 3661 #line 1167 "grammar.y" 3659 { newFile((yyvsp[(2) - (4)].name),feFilePending); ;}3660 break;3661 3662 case 129:3663 3664 /* Line 1464 of yacc.c */3665 #line 1172 "grammar.y"3666 3662 { 3667 3663 feHelp((yyvsp[(2) - (3)].name)); … … 3673 3669 3674 3670 /* Line 1464 of yacc.c */ 3675 #line 117 7"grammar.y"3671 #line 1172 "grammar.y" 3676 3672 { 3677 3673 feHelp(NULL); … … 3682 3678 3683 3679 /* Line 1464 of yacc.c */ 3684 #line 11 84"grammar.y"3680 #line 1179 "grammar.y" 3685 3681 { 3686 3682 singular_example((yyvsp[(2) - (3)].name)); … … 3692 3688 3693 3689 /* Line 1464 of yacc.c */ 3694 #line 11 92"grammar.y"3690 #line 1187 "grammar.y" 3695 3691 { 3696 3692 if (basePack!=(yyvsp[(2) - (2)].lv).req_packhdl) … … 3706 3702 3707 3703 /* Line 1464 of yacc.c */ 3708 #line 1 204"grammar.y"3704 #line 1199 "grammar.y" 3709 3705 { 3710 3706 leftv v=&(yyvsp[(2) - (2)].lv); … … 3727 3723 3728 3724 /* Line 1464 of yacc.c */ 3729 #line 12 20"grammar.y"3725 #line 1215 "grammar.y" 3730 3726 { 3731 3727 leftv v=&(yyvsp[(3) - (3)].lv); … … 3748 3744 3749 3745 /* Line 1464 of yacc.c */ 3750 #line 123 9"grammar.y"3746 #line 1234 "grammar.y" 3751 3747 { 3752 3748 list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE); … … 3757 3753 3758 3754 /* Line 1464 of yacc.c */ 3759 #line 12 43"grammar.y"3755 #line 1238 "grammar.y" 3760 3756 { 3761 3757 list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE); … … 3766 3762 3767 3763 /* Line 1464 of yacc.c */ 3768 #line 124 7"grammar.y"3764 #line 1242 "grammar.y" 3769 3765 { 3770 3766 if ((yyvsp[(3) - (4)].i)==QRING_CMD) (yyvsp[(3) - (4)].i)=RING_CMD; … … 3776 3772 3777 3773 /* Line 1464 of yacc.c */ 3778 #line 12 52"grammar.y"3774 #line 1247 "grammar.y" 3779 3775 { 3780 3776 list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE); … … 3785 3781 3786 3782 /* Line 1464 of yacc.c */ 3787 #line 125 6"grammar.y"3783 #line 1251 "grammar.y" 3788 3784 { 3789 3785 list_cmd(RING_CMD,NULL,"// ",TRUE); … … 3794 3790 3795 3791 /* Line 1464 of yacc.c */ 3796 #line 12 60"grammar.y"3792 #line 1255 "grammar.y" 3797 3793 { 3798 3794 list_cmd((yyvsp[(3) - (4)].i),NULL,"// ",TRUE); … … 3803 3799 3804 3800 /* Line 1464 of yacc.c */ 3805 #line 12 64"grammar.y"3801 #line 1259 "grammar.y" 3806 3802 { 3807 3803 list_cmd(PROC_CMD,NULL,"// ",TRUE); … … 3812 3808 3813 3809 /* Line 1464 of yacc.c */ 3814 #line 126 8"grammar.y"3810 #line 1263 "grammar.y" 3815 3811 { 3816 3812 list_cmd(0,(yyvsp[(3) - (4)].lv).Fullname(),"// ",TRUE); … … 3822 3818 3823 3819 /* Line 1464 of yacc.c */ 3824 #line 12 73"grammar.y"3820 #line 1268 "grammar.y" 3825 3821 { 3826 3822 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3833 3829 3834 3830 /* Line 1464 of yacc.c */ 3835 #line 127 9"grammar.y"3831 #line 1274 "grammar.y" 3836 3832 { 3837 3833 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3844 3840 3845 3841 /* Line 1464 of yacc.c */ 3846 #line 128 5"grammar.y"3842 #line 1280 "grammar.y" 3847 3843 { 3848 3844 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3855 3851 3856 3852 /* Line 1464 of yacc.c */ 3857 #line 12 91"grammar.y"3853 #line 1286 "grammar.y" 3858 3854 { 3859 3855 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3866 3862 3867 3863 /* Line 1464 of yacc.c */ 3868 #line 129 7"grammar.y"3864 #line 1292 "grammar.y" 3869 3865 { 3870 3866 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3877 3873 3878 3874 /* Line 1464 of yacc.c */ 3879 #line 1 303"grammar.y"3875 #line 1298 "grammar.y" 3880 3876 { 3881 3877 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3888 3884 3889 3885 /* Line 1464 of yacc.c */ 3890 #line 130 9"grammar.y"3886 #line 1304 "grammar.y" 3891 3887 { 3892 3888 if((yyvsp[(3) - (6)].lv).Typ() == PACKAGE_CMD) … … 3899 3895 3900 3896 /* Line 1464 of yacc.c */ 3901 #line 13 21"grammar.y"3897 #line 1316 "grammar.y" 3902 3898 { 3903 3899 list_cmd(-1,NULL,"// ",TRUE); … … 3908 3904 3909 3905 /* Line 1464 of yacc.c */ 3910 #line 132 7"grammar.y"3906 #line 1322 "grammar.y" 3911 3907 { yyInRingConstruction = TRUE; ;} 3912 3908 break; … … 3915 3911 3916 3912 /* Line 1464 of yacc.c */ 3917 #line 133 6"grammar.y"3913 #line 1331 "grammar.y" 3918 3914 { 3919 3915 const char *ring_name = (yyvsp[(2) - (8)].lv).name; … … 3953 3949 3954 3950 /* Line 1464 of yacc.c */ 3955 #line 136 9"grammar.y"3951 #line 1364 "grammar.y" 3956 3952 { 3957 3953 const char *ring_name = (yyvsp[(2) - (2)].lv).name; … … 3965 3961 3966 3962 /* Line 1464 of yacc.c */ 3967 #line 137 6"grammar.y"3963 #line 1371 "grammar.y" 3968 3964 { 3969 3965 yyInRingConstruction = FALSE; … … 3975 3971 3976 3972 /* Line 1464 of yacc.c */ 3977 #line 13 84"grammar.y"3973 #line 1379 "grammar.y" 3978 3974 { 3979 3975 if (((yyvsp[(1) - (2)].i)!=LIB_CMD)||(jjLOAD((yyvsp[(2) - (2)].name),TRUE))) YYERROR; … … 3984 3980 3985 3981 /* Line 1464 of yacc.c */ 3986 #line 13 93"grammar.y"3982 #line 1388 "grammar.y" 3987 3983 { 3988 3984 if (((yyvsp[(1) - (2)].i)==KEEPRING_CMD) && (myynest==0)) … … 4058 4054 4059 4055 /* Line 1464 of yacc.c */ 4060 #line 146 5"grammar.y"4056 #line 1460 "grammar.y" 4061 4057 { 4062 4058 type_cmd(&((yyvsp[(2) - (2)].lv))); … … 4067 4063 4068 4064 /* Line 1464 of yacc.c */ 4069 #line 146 9"grammar.y"4065 #line 1464 "grammar.y" 4070 4066 { 4071 4067 //Print("typ is %d, rtyp:%d\n",$1.Typ(),$1.rtyp); … … 4095 4091 4096 4092 /* Line 1464 of yacc.c */ 4097 #line 149 8"grammar.y"4093 #line 1493 "grammar.y" 4098 4094 { 4099 4095 int i; TESTSETINT((yyvsp[(3) - (5)].lv),i); … … 4113 4109 4114 4110 /* Line 1464 of yacc.c */ 4115 #line 15 11"grammar.y"4111 #line 1506 "grammar.y" 4116 4112 { 4117 4113 if (currentVoice->ifsw==1) … … 4135 4131 4136 4132 /* Line 1464 of yacc.c */ 4137 #line 152 8"grammar.y"4133 #line 1523 "grammar.y" 4138 4134 { 4139 4135 int i; TESTSETINT((yyvsp[(3) - (5)].lv),i); … … 4149 4145 4150 4146 /* Line 1464 of yacc.c */ 4151 #line 153 7"grammar.y"4147 #line 1532 "grammar.y" 4152 4148 { 4153 4149 if (exitBuffer(BT_break)) YYERROR; … … 4159 4155 4160 4156 /* Line 1464 of yacc.c */ 4161 #line 15 42"grammar.y"4157 #line 1537 "grammar.y" 4162 4158 { 4163 4159 if (contBuffer(BT_break)) YYERROR; … … 4169 4165 4170 4166 /* Line 1464 of yacc.c */ 4171 #line 15 50"grammar.y"4167 #line 1545 "grammar.y" 4172 4168 { 4173 4169 /* -> if(!$2) break; $3; continue;*/ … … 4183 4179 4184 4180 /* Line 1464 of yacc.c */ 4185 #line 15 62"grammar.y"4181 #line 1557 "grammar.y" 4186 4182 { 4187 4183 /* $2 */ … … 4204 4200 4205 4201 /* Line 1464 of yacc.c */ 4206 #line 15 81"grammar.y"4202 #line 1576 "grammar.y" 4207 4203 { 4208 4204 idhdl h = enterid((yyvsp[(2) - (3)].name),myynest,PROC_CMD,&IDROOT,TRUE); … … 4219 4215 4220 4216 /* Line 1464 of yacc.c */ 4221 #line 15 91"grammar.y"4217 #line 1586 "grammar.y" 4222 4218 { 4223 4219 idhdl h = enterid((yyvsp[(1) - (3)].name),myynest,PROC_CMD,&IDROOT,TRUE); … … 4243 4239 4244 4240 /* Line 1464 of yacc.c */ 4245 #line 16 10"grammar.y"4241 #line 1605 "grammar.y" 4246 4242 { 4247 4243 omFree((ADDRESS)(yyvsp[(3) - (4)].name)); … … 4268 4264 4269 4265 /* Line 1464 of yacc.c */ 4270 #line 16 33"grammar.y"4266 #line 1628 "grammar.y" 4271 4267 { 4272 4268 // decl. of type proc p(int i) … … 4279 4275 4280 4276 /* Line 1464 of yacc.c */ 4281 #line 163 9"grammar.y"4277 #line 1634 "grammar.y" 4282 4278 { 4283 4279 // decl. of type proc p(i) … … 4293 4289 4294 4290 /* Line 1464 of yacc.c */ 4295 #line 16 51"grammar.y"4291 #line 1646 "grammar.y" 4296 4292 { 4297 4293 iiRETURNEXPR.Copy(&(yyvsp[(3) - (4)].lv)); … … 4304 4300 4305 4301 /* Line 1464 of yacc.c */ 4306 #line 165 7"grammar.y"4302 #line 1652 "grammar.y" 4307 4303 { 4308 4304 if ((yyvsp[(1) - (3)].i)==RETURN) … … 4318 4314 4319 4315 /* Line 1464 of yacc.c */ 4320 #line 43 20"grammar.cc"4316 #line 4315 "grammar.cc" 4321 4317 default: break; 4322 4318 } -
Singular/grammar.y
r2675bd r760258 951 951 int r; TESTSETINT($4,r); 952 952 int c; TESTSETINT($7,c); 953 if (r < 1)954 MYYERROR("rows must be greater than 0");955 if (c < 0)956 MYYERROR("cols must be greater than -1");957 953 leftv v; 958 954 idhdl h; -
Singular/iparith.cc
r2675bd r760258 1094 1094 if (res->data==NULL) 1095 1095 { 1096 Werror("matrix size not compatible(%dx%d, %dx%d) ",1096 Werror("matrix size not compatible(%dx%d, %dx%d) in *", 1097 1097 MATROWS(A),MATCOLS(A),MATROWS(B),MATCOLS(B)); 1098 1098 return TRUE; … … 1482 1482 poly r=p; // pointer to the beginning of component i 1483 1483 poly o=NULL; 1484 unsigned i=(unsigned)(long)v->Data();1484 int i=(int)(long)v->Data(); 1485 1485 while (p!=NULL) 1486 1486 { … … 2667 2667 if(strcmp(s, "with")==0) 2668 2668 return jjLOAD((char*)v->Data(), TRUE); 2669 if (strcmp(s,"try")==0) 2670 return jjLOAD_TRY((char*)v->Data()); 2669 2671 WerrorS("invalid second argument"); 2670 WerrorS("load(\"libname\" [, \"with\"]);");2672 WerrorS("load(\"libname\" [,option]);"); 2671 2673 return TRUE; 2672 2674 } … … 5327 5329 } 5328 5330 return TRUE; 5331 } 5332 static int WerrorS_dummy_cnt=0; 5333 static void WerrorS_dummy(const char *) 5334 { 5335 WerrorS_dummy_cnt++; 5336 } 5337 BOOLEAN jjLOAD_TRY(const char *s) 5338 { 5339 void (*WerrorS_save)(const char *s) = WerrorS_callback; 5340 WerrorS_callback=WerrorS_dummy; 5341 WerrorS_dummy_cnt=0; 5342 BOOLEAN bo=jjLOAD(s,TRUE); 5343 if (TEST_OPT_PROT && (bo || (WerrorS_dummy_cnt>0))) 5344 Print("loading of >%s< failed\n",s); 5345 WerrorS_callback=WerrorS_save; 5346 errorreported=0; 5347 return FALSE; 5329 5348 } 5330 5349 … … 8107 8126 { 8108 8127 memset(res,0,sizeof(sleftv)); 8109 BOOLEAN call_failed=FALSE;8110 8128 8111 8129 if (!errorreported) … … 8295 8313 { 8296 8314 memset(res,0,sizeof(sleftv)); 8297 BOOLEAN call_failed=FALSE;8298 8315 8299 8316 if (!errorreported) … … 8339 8356 } 8340 8357 8341 BOOLEAN failed=FALSE;8342 8358 iiOp=op; 8343 8359 int i=iiTabIndex(dArithTab1,JJTAB1LEN,op); -
Singular/ipassign.cc
r2675bd r760258 460 460 return FALSE; 461 461 } 462 static BOOLEAN jiA_NUMBER2_I(leftv res, leftv a, Subexpr e) 463 { 464 if (e==NULL) 465 { 466 if (res->data!=NULL) 467 { 468 number2 nn=(number2)res->data; 469 number2 n=n2Init((long)a->Data(),nn->cf); 470 n2Delete(nn); 471 res->data=(void *)n; 472 } 473 else 474 { 475 WerrorS("no (c)ring avialable for conversion from int"); 476 return TRUE; 477 } 478 } 479 else 480 { 481 int i=e->start-1; 482 if (i<0) 483 { 484 Werror("index[%d] must be positive",i+1); 485 return TRUE; 486 } 487 bigintmat *iv=(bigintmat *)res->data; 488 if (e->next==NULL) 489 { 490 WerrorS("only one index given"); 491 return TRUE; 492 } 493 else 494 { 495 int c=e->next->start; 496 if ((i>=iv->rows())||(c<1)||(c>iv->cols())) 497 { 498 Werror("wrong range [%d,%d] in cmatrix %s(%d,%d)",i+1,c,res->Name(),iv->rows(),iv->cols()); 499 return TRUE; 500 } 501 else 502 { 503 n_Delete((number *)&BIMATELEM(*iv,i+1,c),iv->basecoeffs()); 504 BIMATELEM(*iv,i+1,c) = n_Init((long)a->Data(),iv->basecoeffs()); 505 } 506 } 507 } 508 return FALSE; 509 } 510 static BOOLEAN jiA_NUMBER2_N(leftv res, leftv a, Subexpr e) 511 { 512 if (e==NULL) 513 { 514 if (res->data!=NULL) 515 { 516 number2 nn=(number2)res->data; 517 if (currRing->cf==nn->cf) 518 { 519 number2 n=(number2)omAlloc(sizeof(*n)); 520 n->cf=currRing->cf; n->cf++; 521 n->n=(number)a->CopyD(NUMBER_CMD); 522 n2Delete(nn); 523 res->data=(void *)n; 524 } 525 else 526 { 527 WerrorS("different base"); 528 return TRUE; 529 } 530 } 531 else 532 { 533 WerrorS("no (c)ring avialable for conversion from number"); 534 return TRUE; 535 } 536 } 537 else 538 { 539 int i=e->start-1; 540 if (i<0) 541 { 542 Werror("index[%d] must be positive",i+1); 543 return TRUE; 544 } 545 bigintmat *iv=(bigintmat *)res->data; 546 if (e->next==NULL) 547 { 548 WerrorS("only one index given"); 549 return TRUE; 550 } 551 else 552 { 553 int c=e->next->start; 554 if ((i>=iv->rows())||(c<1)||(c>iv->cols())) 555 { 556 Werror("wrong range [%d,%d] in cmatrix %s(%d,%d)",i+1,c,res->Name(),iv->rows(),iv->cols()); 557 return TRUE; 558 } 559 else if (iv->basecoeffs()==currRing->cf) 560 { 561 n_Delete((number *)&BIMATELEM(*iv,i+1,c),iv->basecoeffs()); 562 BIMATELEM(*iv,i+1,c) = (number)(a->CopyD(NUMBER_CMD)); 563 } 564 else 565 { 566 WerrorS("different base"); 567 return TRUE; 568 } 569 } 570 } 571 return FALSE; 572 } 462 573 #endif 463 574 static BOOLEAN jiA_BIGINT(leftv res, leftv a, Subexpr e) … … 714 825 } 715 826 static BOOLEAN jiA_MODUL_P(leftv res, leftv a, Subexpr) 827 /* module = poly */ 716 828 { 717 829 if (res->data!=NULL) idDelete((ideal*)&res->data); … … 1880 1992 sleftv t; 1881 1993 matrix olm = (matrix)l->Data(); 1882 int rk =olm->rank;1994 int rk; 1883 1995 char *pr=((map)olm)->preimage; 1884 1996 BOOLEAN module_assign=(/*l->Typ()*/ lt==MODUL_CMD); … … 1892 2004 if (lt /*l->Typ()*/==MATRIX_CMD) 1893 2005 { 1894 num=olm->cols()*olm->rows(); 2006 rk=olm->rows(); 2007 num=olm->cols()*rk /*olm->rows()*/; 1895 2008 lm=mpNew(olm->rows(),olm->cols()); 1896 2009 int el; … … 1904 2017 num=exprlist_length(hh); 1905 2018 lm=(matrix)idInit(num,1); 1906 rk=1;1907 2019 if (module_assign) 1908 2020 { 2021 rk=0; 1909 2022 mtyp=MODUL_CMD; 1910 2023 etyp=VECTOR_CMD; 1911 2024 } 2025 else 2026 rk=1; 1912 2027 } 1913 2028 -
Singular/iplib.cc
r2675bd r760258 1092 1092 Werror("dynl_open failed:%s", dynl_error()); 1093 1093 Werror("%s not found", newlib); 1094 killhdl2(pl,&(basePack->idroot),NULL); // remove package 1094 1095 goto load_modules_end; 1095 1096 } … … 1119 1120 RET=FALSE; 1120 1121 } 1121 else Werror("mod_init not found:: %s\nThis is probably not a dynamic module for Singular!\n", dynl_error()); 1122 else 1123 { 1124 Werror("mod_init not found:: %s\nThis is probably not a dynamic module for Singular!\n", dynl_error()); 1125 killhdl2(pl,&(basePack->idroot),NULL); // remove package 1126 } 1122 1127 } 1123 1128 -
Singular/ipprint.cc
r2675bd r760258 63 63 static void ipPrint_MA0(matrix m, const char *name) 64 64 { 65 if ( MATCOLS(m)>0)65 if ((MATCOLS(m)>0)&&(MATROWS(m)>0)) 66 66 { 67 67 char **s=(char **)omAlloc(MATCOLS(m)*MATROWS(m)*sizeof(char*)); … … 181 181 omFreeSize((ADDRESS)l,MATCOLS(m)*sizeof(int)); 182 182 } 183 else Print("%d x %d zero matrix\n",MATROWS(m),MATCOLS(m)); 183 184 } 184 185 -
Singular/ipshell.cc
r2675bd r760258 781 781 { 782 782 v->rtyp=IDEAL_CMD; 783 char *tmp = theMap->preimage; 784 theMap->preimage=(char*)1L; 785 // map gets 1 as its rank (as an ideal) 783 786 v->data=fast_map(IDIDEAL(w), src_ring, (ideal)theMap, currRing); 787 theMap->preimage=tmp; // map gets its preimage back 784 788 } 785 789 else -
Singular/ipshell.h
r2675bd r760258 79 79 /// load lib/module given in v 80 80 BOOLEAN jjLOAD(const char *s, BOOLEAN autoexport = FALSE); 81 BOOLEAN jjLOAD_TRY(const char *s); 81 82 BOOLEAN iiLocateLib(const char* lib, char* where); 82 83 leftv iiMap(map theMap, const char * what); -
Singular/libsingular.h
r2675bd r760258 18 18 #include <polys/sparsmat.h> 19 19 20 #include <Singular/mod_lib.h> 20 21 #include <Singular/subexpr.h> 21 22 #include <Singular/tok.h> -
Singular/links/ssiLink.cc
r2675bd r760258 60 60 #include <time.h> 61 61 62 #define SSI_VERSION 862 #define SSI_VERSION 9 63 63 // 5->6: changed newstruct representation 64 64 // 6->7: attributes 65 65 // 7->8: qring 66 // 8->9: module: added rank 66 67 67 68 #define SSI_BASE 16 … … 1139 1140 fputs("99\n",d->f_write); 1140 1141 fflush(d->f_write); 1142 if (d->f_read!=NULL) { s_close(d->f_read);s_free(d->f_read);} 1143 if (d->f_write!=NULL) { fclose(d->f_write); d->f_write=NULL; } 1141 1144 } 1142 1145 if (d->r!=NULL) rKill(d->r); … … 1150 1153 struct timespec rem; 1151 1154 int r; 1152 do1155 loop 1153 1156 { 1154 1157 r = nanosleep(&t, &rem); 1155 1158 t = rem; 1156 } while ((r < 0) && (errno == EINTR) 1157 && (si_waitpid(d->pid,NULL,WNOHANG) == 0)); 1158 if ((r == 0) && (kill(d->pid,0) == 0)) 1159 // child finished: 1160 if (si_waitpid(d->pid,NULL,WNOHANG) != 0) break; 1161 // other signal, waited s>= 100 ms: 1162 if ((r==0) || (errno != EINTR)) break; 1163 } 1164 if (kill(d->pid,0) == 0) 1159 1165 { 1160 1166 kill(d->pid,15); 1161 1167 t.tv_sec=5; // <=5s 1162 1168 t.tv_nsec=0; 1163 do1169 loop 1164 1170 { 1165 1171 r = nanosleep(&t, &rem); 1166 1172 t = rem; 1167 } while ((r < 0) && (errno == EINTR) 1168 && (si_waitpid(d->pid,NULL,WNOHANG) == 0)); 1169 if ((r == 0) && (kill(d->pid,0) == 0)) 1173 // child finished: 1174 if (si_waitpid(d->pid,NULL,WNOHANG) != 0) break; 1175 // other signal, waited s>= 100 ms: 1176 if ((r==0) || (errno != EINTR)) break; 1177 } 1178 if (kill(d->pid,0) == 0) 1170 1179 { 1171 1180 kill(d->pid,9); // just to be sure … … 1174 1183 } 1175 1184 } 1176 if (d->f_read!=NULL) s_close(d->f_read); 1177 if (d->f_read!=NULL) s_free(d->f_read); 1178 if (d->f_write!=NULL) fclose(d->f_write); 1185 if (d->f_read!=NULL) { s_close(d->f_read);s_free(d->f_read);} 1186 if (d->f_write!=NULL) { fclose(d->f_write); d->f_write=NULL; } 1179 1187 if ((strcmp(l->mode,"tcp")==0) 1180 1188 || (strcmp(l->mode,"fork")==0)) … … 1266 1274 case 10:res->rtyp=MODUL_CMD; 1267 1275 if (d->r==NULL) goto no_ring; 1268 res->data=(char*)ssiReadIdeal(d); 1276 { 1277 int rk=s_readint(d->f_read); 1278 ideal M=ssiReadIdeal(d); 1279 M->rank=rk; 1280 res->data=(char*)M; 1281 } 1269 1282 break; 1270 1283 case 11: … … 1447 1460 if(tt==IDEAL_CMD) fputs("7 ",d->f_write); 1448 1461 else if(tt==MATRIX_CMD) fputs("8 ",d->f_write); 1449 else fputs("10 ",d->f_write); 1462 else 1463 { 1464 ideal M=(ideal)dd; 1465 fprintf(d->f_write,"10 %d ",M->rank); 1466 } 1450 1467 ssiWriteIdeal(d,tt,(ideal)dd); 1451 1468 break; -
Singular/maps_ip.cc
r2675bd r760258 43 43 #include <polys/monomials/maps.h> 44 44 #endif 45 46 45 47 46 /*2 … … 265 264 266 265 number d = n_GetDenom(p_GetCoeff(p, currRing), currRing); 267 p_Test((poly)NUM( d), R);266 p_Test((poly)NUM((fraction)d), R); 268 267 269 268 if ( n_IsOne (d, currRing->cf) ) … … 271 270 n_Delete(&d, currRing); d = NULL; 272 271 } 273 else if (!p_IsConstant((poly)NUM(d), R))272 else if (!p_IsConstant((poly)NUM((fraction)d), R)) 274 273 { 275 274 WarnS("ignoring denominators of coefficients..."); … … 280 279 memset(&tmpW,0,sizeof(sleftv)); 281 280 tmpW.rtyp = POLY_CMD; 282 p_Test((poly)NUM( num), R);283 284 tmpW.data = NUM ( num); // a copy of this poly will be used285 286 p_Normalize(NUM( num),R);281 p_Test((poly)NUM((fraction)num), R); 282 283 tmpW.data = NUM ((fraction)num); // a copy of this poly will be used 284 285 p_Normalize(NUM((fraction)num),R); 287 286 if (maApplyFetch(MAP_CMD,theMap,v,&tmpW,R,NULL,NULL,0,nMap)) 288 287 { … … 391 390 ideal src_id=idInit(1,1); 392 391 src_id->m[0]=p; 392 393 char *tmp = theMap->preimage; 394 theMap->preimagei=(char*)1L; // map gets 1 as its rank (as an ideal) 393 395 ideal res_id=fast_map(src_id,currRing,(ideal)theMap,currRing); 396 theMap->preimage=tmp; // map gets its preimage back 397 394 398 res=res_id->m[0]; 395 399 res_id->m[0]=NULL; idDelete(&res_id); -
Singular/mod_lib.cc
r2675bd r760258 2 2 3 3 #include <resources/feFopen.h> 4 #include <reporter/reporter.h> 4 5 #include <polys/mod_raw.h> 5 6 … … 31 32 const unsigned char mach_FAT[]={0xca,0xfe,0xba,0xbe,0}; 32 33 const unsigned char mach_fat[]={0xbe,0xba,0xfe,0xca,0}; 34 35 const unsigned char utf16be[]={0xfe,0xff,0}; 36 const unsigned char utf16le[]={0xff,0xfe,0}; 37 const unsigned char utf8ms[]={0xEF,0xBB,0xBF,0}; 33 38 34 39 int i=0; … … 113 118 goto lib_type_end; 114 119 } 120 if ((strncmp(buf,(const char *)utf16be,2)==0) 121 ||(strncmp(buf,(const char *)utf16le,2)==0)) 122 { 123 WerrorS("UTF-16 not supported"); 124 LT=LT_NOTFOUND; 125 goto lib_type_end; 126 } 127 if (strncmp(buf,(const char *)utf8ms,3)==0) 128 { 129 WarnS("UTF-8 detected - may not work"); 130 LT=LT_SINGULAR; 131 goto lib_type_end; 132 } 115 133 if(isprint(buf[0]) || buf[0]=='\n') 116 134 { LT = LT_SINGULAR; goto lib_type_end; } -
Singular/subexpr.cc
r2675bd r760258 223 223 case NUMBER_CMD: 224 224 case BIGINT_CMD: 225 if (t==NUMBER_CMD) 226 { 227 number n=(number)d; 228 nNormalize(n); 229 d=n; 230 } 225 231 s=String(d); 226 232 if (s==NULL) return; -
Singular/table.h
r2675bd r760258 61 61 ,{D(jjCOLS_IV), COLS_CMD, INT_CMD, INTMAT_CMD , ALLOW_PLURAL |ALLOW_RING} 62 62 ,{D(jjCOLS_BIM), COLS_CMD, INT_CMD, BIGINTMAT_CMD , ALLOW_PLURAL |ALLOW_RING} 63 #ifdef SINGULAR_4_1 64 ,{D(jjCOLS_BIM), COLS_CMD, INT_CMD, CMATRIX_CMD , ALLOW_PLURAL |ALLOW_RING} 65 #endif 63 66 ,{ jjWRONG , COLS_CMD, 0, INTVEC_CMD , ALLOW_PLURAL |ALLOW_RING} 64 67 ,{D(jjCONTENT), CONTENT_CMD, POLY_CMD, POLY_CMD , ALLOW_PLURAL |ALLOW_RING} … … 219 222 ,{D(jjROWS_IV), ROWS_CMD, INT_CMD, INTMAT_CMD , ALLOW_PLURAL |ALLOW_RING} 220 223 ,{D(jjROWS_BIM), ROWS_CMD, INT_CMD, BIGINTMAT_CMD , ALLOW_PLURAL |ALLOW_RING} 224 #ifdef SINGULAR_4_1 225 ,{D(jjROWS_BIM), ROWS_CMD, INT_CMD, CMATRIX_CMD , ALLOW_PLURAL |ALLOW_RING} 226 #endif 221 227 ,{D(jjCOUNT_IV), ROWS_CMD, INT_CMD, INTVEC_CMD , ALLOW_PLURAL |ALLOW_RING} 222 228 ,{D(jjSBA), SBA_CMD, IDEAL_CMD, IDEAL_CMD , ALLOW_PLURAL |ALLOW_RING} … … 1221 1227 ,{D(jiA_BIGINTMAT),CMATRIX_CMD, CMATRIX_CMD} 1222 1228 ,{D(jiA_NUMBER2), CNUMBER_CMD, CNUMBER_CMD } 1229 ,{D(jiA_NUMBER2_I),CNUMBER_CMD, INT_CMD } 1230 ,{D(jiA_NUMBER2_N),CNUMBER_CMD, NUMBER_CMD } 1223 1231 ,{D(jiA_CRING), CRING_CMD, CRING_CMD } 1224 1232 #endif -
Singular/walk.cc
r2675bd r760258 6793 6793 // We only perturb the current target vector at the recursion level 1 6794 6794 if(Xngleich == 0 && nlev == 1) //(ngleich == 0) important, e.g. ex2, ex3 6795 if (MivComp(next_vect, omega2) == 1)6795 if (MivComp(next_vect, omega2) != 1) 6796 6796 { 6797 6797 // to dispense with taking initial (and lifting/interreducing -
Singular/walk.h
-
Property
mode
changed from
100644
to100755
r8aa977 r760258 52 52 53 53 /* Okt -- Nov'01 */ 54 // compute a Groebner basis of an ideal G w.r.t. lexicographic order 54 // compute a Groebner basis of an ideal G w.r.t. lexicographic order 55 55 //ideal Mwalk(ideal Go, intvec* orig_M, intvec* target_M); 56 ideal Mwalk(ideal Go, intvec* orig_M, intvec* target_M, ring baseRing );56 ideal Mwalk(ideal Go, intvec* orig_M, intvec* target_M, ring baseRing, int reduction, int printout); 57 57 58 58 // random walk algorithm to compute a Groebner basis 59 ideal Mrwalk(ideal Go, intvec* curr_weight, intvec* target_weight, int weight_rad, int pert_deg, ring baseRing); 59 60 ideal Mrwalk(ideal Go, intvec* orig_M, intvec* target_M, int weight_rad, int pert_deg, int reduction, int printout); 60 61 61 62 /* the perturbation walk algorithm */ 62 63 63 ideal Mpwalk(ideal Go, int op_deg, int tp_deg,intvec* curr_weight,intvec* target_weight, int nP );64 ideal Mpwalk(ideal Go, int op_deg, int tp_deg,intvec* curr_weight,intvec* target_weight, int nP, int reduction, int printout); 64 65 65 66 /* the perturbation walk algorithm with random element */ 66 67 ideal Mprwalk(ideal Go, intvec* curr_weight, intvec* target_weight, int weight_rad, int op_deg, int tp_deg, ring baseRing); 67 ideal Mprwalk(ideal Go, intvec* orig_M, intvec* target_M, int weight_rad, int op_deg, int tp_deg, int nP, int reduction, int printout); 68 68 69 69 /* The fractal walk algorithm */ 70 ideal Mfwalk(ideal G, intvec* ivstart, intvec* ivtarget );70 ideal Mfwalk(ideal G, intvec* ivstart, intvec* ivtarget, int reduction, int printout); 71 71 72 72 /* The fractal walk algorithm with random element */ 73 ideal Mfrwalk(ideal G, intvec* ivstart, intvec* ivtarget, int weight_rad);73 ideal Mfrwalk(ideal G, intvec* ivstart, intvec* ivtarget, int weight_rad, int reduction, int printout); 74 74 75 75 /* Implement Tran's idea */ -
Property
mode
changed from
-
Tst/BuchDL/Ex_L5.res.gz.uu
r2675bd r760258 1 1 begin 640 Ex_L5.res.gz 2 M'XL(",T0"TX``T5X7TPU+G)E<P"E6FUSVD@2_NY?,>6Z#U(LL&8D\;(^4[6W 3 MFWA)0BZ.DT^I)"6#L+4+B$7R&K%U__VZ9S0](Q`&[DB,8::[IU^>Z>EI^>[S 4 MK\,/C#$^8.^'_V+G15ZT9^G]^=79734C!@P&?Z2+M'#<JS/\S08#]GK]XWW4 5 M7B3/[;R("Z(.!HP^AVWS.6JSR\OKQA<#6?%\.4N`B$>LF:AZD;Q.FZW2Q0/[ 6 MM"XW[)KY'G/67NEMO,*%CY.E$[C>)'>XZQI+N@.63I)XQH;`L1:M0G3+C<?6 7 MFU;!@Q(^P.]P(PQ#;\#FV>0)-!L!1UYNG*%[96SJ#]@2E"B<$2S2XAYC+1!W 8 MM@$IWAJ^G>$;*T&X9N'^`-S0&L"PCW/PDGPTS]MZ?B-`3&OM26DT+V@>M$;) 9 MWAJ%T'Q0N>7=EEO`*9,E&<9#\@0'JG0>+QUTI(?F&6&1,;].-D*RRTNV2B9/ 10 M8URN>$S0/>5#FN3$WADHOKR8."-NXL"[Y#<<!9^!#]!7H.T9_*PM%7KDKXI, 11 M3_2-(Y!1CPN_;3EX3</@5VV*T*'D:`6:H35GV4):(LTJTFQ!M@A!*@M0&42C 12 M+O"#*F]J*HO`#K&EL@A)-<E(XY&)N:TR(AP526!-3WKJQU?^[7KSZB%9`+I; 13 M^$NX,"B^7?O$U:75&ZDU6:]MR&K\?;-G`_!EGA2TS2B``=?P>0N^'(*5Y46Q 14 M"<P\>$MOF+<F[@%X1LM[5Y-'<'Q;QYG-'`V:4'@(A,$^$`9U$&*H),!\&58% 15 M1OB\D1_@:^F=^=4@1)ND]&K!UA+T;-^..,FL9D/?CCNMHF>Y#>1J79J$-$`X 16 M?JMP?!R0PZ`!R+Z&LC+8MM:8&H9;N+8LB>K(MHWLU,!=L["[9:$Q#]"9IYO$ 17 MJ>$?U26*OE%&CT6^@6[$K<_@K#_2V4QBV*L!+Y)[=?=`LLZC+G/@C&-W29Z# 18 M']T73B<2&NH<_&R2\+/7D(:C2./^C3R0\"CRV#-XZ5F4AJICCM0(?+9<96,V 19 M2?/E+"Y_2V?W'[-9Z2@Q-[3!(W#A^9>[GV]>_\1VB&]`C1N635E1+A.E`?$! 20 M9'^^N_LR0KX;-G_*"W:?L)@]9O,,<DB2/>7L9I4E]XMDQ>[C/,W9-%NQ>%%9 21 M@E(!>5I>!X)"KQBP^%>BG),JA-X-/]Q\>?_S)T@,TL%7+(]+U`[76L4%8+DF 22 MCEOB;)7TN0[+?VH3-43^T^O/7SY]`&,^9(O$S,`Y^>'?G]%(QGY5[E$KH9.2 23 M5<&6X*A%-D^529\NAX87XGM.7P#Z?].7#FH'FXM-()Z3=`Z>;O&K2EW8GY/D 24 M894D*/"W=&L5DM&K9/R5C-DX`SF/H)%SXPDZ<Y>K)$\64'2!O]APJ,0IK?-D 25 M926_KJ_UR3%7X(X:9Z01Y@M4,WEP;G^,7';!B4\@GPS3;:$`7$C@:K[Q8[QX 26 M2&KQ+#)V^[7X1B)"%('FL5L\"GR"<U<Z"3'CH&;I-:B3_O,ZA_?K]((3@KO2 27 M$>3;7@4D*>UV=#'.OJ;?7A7?G;1E9?6>U/P_]-76(I6,5P0?-`0C;D4:_.`4 28 MI$&/PIE.XS%P<U/[]:1VLQ2V1VQ&^[ZQK;)K<L&W+>N+FF7]4%D6X^&V@`@6 29 M3NRQ_.D^+QS0VBL\[EZB!AZKV=KO:(^D$FW3J8/T+E3`AJ:G:"H#\->K5,]R 30 MW[>]Q7U!WOJ(7G9@M>_.Q'T5?P4KOI&9W#=NO8=]C(ZAJ<ZN![;LYWXMLIQ7 31 MD56BX/V54URD8+(^U<;9?/E4)#BEPC3.DNFTS>Y+V`SCIQ7F#=*-"R5-6O!Q 32 M=%$9T4HK,UJ`&A!$"O.PY@,N]5<GY,>1:\A`9T/4IXS,L>#<SJ]8:[QQJ_T* 33 M.Q4R)29M.,Q6"9NFJ[PX"PK:;EQP.LQJPZ)M5@FLSV%UGLGSA304T:&S3`2G 34 MGF4<B]!T"FQ9X4R2:;I()DZ:OYG%A>NZ?ZL;(Z;A6?:@;HW&2:*K;VAV!J%9 35 M<[5:/B)^57T*H0]:!K]<@*?5>@Z0614`#_R="H`'<#I,@?9]-G[**P99!:-0 36 M(A+U"KDV9[DYT,?X'=VC"H>WV\*M+I@<+IA+HVH0;=\ND8*M7^%O^"*J+\*5 37 M,]^%X80#'B$S)'5Q/I`\WX4J\&N<,!2HH4HR#(0P\%TM2G*W[@)UL9IHZR90 38 M7T@3]2VBK:4K$JN:;50&ZUD%!U[A03E3G2M$)1I@P1$6MN[`1`R!51#@BW!4 39 M9R#ZL)E>&ETMIFPW+-$^%FZQ"(.$L+,/M&%W%[18[#:#MBE<5N&[GP@KX3_5 40 M\5W=?.K>($TCON5N=;GBGE)#4XE]]D3!KCU8_NZQ1]]6;5Q$T;9!!E-1IX[- 41 M&E_7;%4L=NES7U?[WIT'EMR2&1W_4((,Q,D)$@O2[03Y+LLW3[/?5%HL#R;* 42 M#KC73I0-#1O>"71RF6)RV6"?:5VVL&=E:$(*YE!67#9FX2"*6:UPG,=P$U_+ 43 MXO;Z]JM<\QN)BO0ML6Z+,_6&GN^ZVZ+]XI$I2E896<)%LO36)+`S,-=`>US> 44 M9_8LQ'<7XE!O;2]$R.OT=M'8,?T,CN6P<N(#.K%4URWK".WR/68_'&\V7#%! 45 MZKHDF>:XV9D*]AC_<+SQ``0?KI9X;2\]WY@:VGTS2:%G:MTFX*&)S@O:B%UM 46 MQ&*R/Q3=AD37M79IUPH+5O9JQU(@>OS@5@U/WJH]T=""AEIR4:2+)[4G8#/4 47 MECA":&!5"8'P_0!0Y?CM=EC?P#VS.4?#ZWF\ED!T3#G/>[#GX@+VY+TS&GKG 48 M:8X!>#CWU%40RUBK-\M[L*%@-V>S)ZGX'QE>Y18P@LR^)97:7/=)4:0.$+K> 49 MN?Q\#E162'WYSN6[D.^!?`_E>W36.OJ%4EO\)TM>)#_ZYEV-,'Z*U"(KXMEQ 50 M4LEZDQ%.L%0S6]V[X[6LF/NF'#K!&YJ9_S\KFT<$)WA,,UL%,-Y+JT,BGBT? 51 M8Q\0MHH7DVSN(-"%QWTO,$CKFZ<%>,X`L?KF*&;W`J`'M:.A-VTMWH=CH,(^ 52 M\NZBGWL[_UQKZ5YM,TS'V1_):I',4`?<$E*FM2GZ_?JF((;CM\8!X$KN*NC= 53 MDV%O0[V)N[(#@G`DO(GA6&`1@[!A_))%FB$X=86P":XOK1`11`5V&RK,3=(5 54 MA+L`@.;++$]DS"GBPL='?ZJG]@QD+>Y5_\4+_PUWCU(S+&.A\]E:H5_'H-)' 55 MP@]Y3-$M\!E@#7TP?PSP]H)&YEOQD^4RZ3Y62\0M^UVNX>].[`>F!<G:&@:, 56 MG!\$(Y&*@R`ATJ"61QNMU*1A4\JMVZU)HQJL&SVA23O'Z]IM@/*6MS2IJ84$ 57 M/LK<OD+@!:I(%N;NH!+QUM5!"-_N.3Q4;7G-+9$%]R:3*06VFBR4OAEJC-I% 58 M@S!/.Q5"WPQ/K1F..M=M%/+=8%E0;8KE#I&PB4Y/NCLXKW1Z*0%;SWJ/\HIF 59 M"T\ZWXFM$;7[/:?9.DTY?+\O-5NWQG;0NYJM][_9UM]?M;RP6F">^0GL_F&S 60 M?IQ-TCD">_%7O,J=.[>%3V*&!M[8`51$5V>4DP(32C,&<5*/;-3??>`3G'2> 61 M+&3#&4Z8[/>VRV`A<6:>[=`PC%/``]/D,&,0EIJ&M'WGZ2);.;_'X^P>UO64 62 MJBZ[8$/<R1$),'<L,V;EE:`AKTR29?%XJ",A0D@KDE*:#;8-69KO[Q_<70[/ 63 M*"*A.0;,F&C+IV&JR0DV4$$2&J^;,?-G0R*T#GOU*/FE2V'8.?52*/`A]&Z# 64 M^Y?181_UFKHV4!'8USZ![3JK*;QIE<)CSYL6-A^>R];:U!B1K^7]F&7C79FY 65 MH>2V3-6Q\RQXJW;=+R.%60J"U:OCY-/(\G5D^1H[;]1%>_;T;M&SW4/7\[!_ 66 M<B2PB7?8H='1#L5VW_!:]]7U(/ANEL1RK)ZT]=-`G)7/I^53<=F2+'4/OJP: 67 M[Y0@.EO/$DHS$VRUU4N:";=ZZ8;'"@`^2L:_NL._K7O"/V.[^L?9?P'!SB() 68 $JR<````` 2 M'XL("-IU6U4``T5X7TPU+G)E<P"E6FUWVCH2_LZOT,G9#W9BJ"7;O#0;SNG> 3 MVZ:TI=N$]E-/VN.`(;X7;"XV#>:>_>\[(UDO!A-@ES9@I)G1O#P:22-&7W\? 4 M?":$T#[Y-/@7N<BSO#6/'R^N&Z.RA_4)-/Z,DSBW[.L&?I)^G[S=_/P4M)+H 5 MN97E8:ZHO3Y1SWY+/P<M\NK53>V+@*QPL9Q'0$0#4D]4OI2\=HNLXF1&[C?% 6 MEMP0UR'6QBF<K9/;\#A96I[M3#*+VK:VI-,G\20*YV0`'!O6S%FGV#IDLVWF 7 MU"O@`3[]+=,,W3Y9I),U:#8$CJS86@-#7*]/EJ!#;@VAL4D=0IH@K;$%(<X& 8 MOC7PC10@6[)0MP]>:/:AV<4^>`&?ZJ4MV;ME(*2Y<;@LU<]4/ZB,<IV-ZO-* 9 M?WS<\0=X8[)4.E-?N8`"5;P(EQ9ZT#'LHH&VNDH$=A+0@*RBR7J,@^5/$7JE 10 MF,51IMC;?<&7Y1-K2`VY'>4O;`5?H>W@(]"U`7\;HM!"N\I/)9GLZ&D7(*-L 11 M9V[+<*SR"@./2E.8C"!%*]`,J3E)$VX)-RN/TT39PIA2F8'*(!IU@3]4>5M1 12 MF7EF:`V5F:]4XXRJ/=#1-E5&8*,B$8SI<$_]_$X?;K:7LR@!4#?Q@]G0R!YN 13 M7,754:/74DNR;DN35?A[>JIZX,LLRM7L4@'TJ`3/!_#E`*PLKO*MI_O!6W*> 14 M?-!Q]\`S4M['BCP%Q@]5G)G,0;\.A<=`Z!T"H5<%(8:*`\SE815@A.<M?X"O 15 MA=-PRT:(MI+2K01;2I"]/3/B2F;9Z[MFW-4HLI>:0"['59V0`!2./P@<GP9D 16 MWZL!LBNA+`PVK=6F^OX.K@U+@BJR32/;%7!7+.SL6*C-`W1F\3:R*OA'=15% 17 M3RLCVP)70S>@QC,XZ\]X/N<8=BK`"_A<W5^'C&6H0RQ8VL@HRC+PH_W"HJ2$ 18 M^C(#/^L4_.S4).$@D+A_Q]<A7($<\@Q>>F:%IFKKE30`GRU7Z9A,XFPY#XOW 19 M\?SQ2SHO+"'F5DWP`%QX\6WTYO;M:[)'?`MJW))T2O)B&0D-%!]`]LUH]&V( 20 M?+=DL<YR\AB1D#REBQ1R2)2N,W*[2J/')%J1QS"+,S)-5R1,2DM0ZE,DQ;4A 21 M)NH5`A1_1<(WL0#H:/#Y]MNG-_>0%[A_KTD6%J@<#K4*<X"R*8T:TDR%Y&(. 22 M@]^W%#7$_?[MUV_WG\&4SVD2Z1Y8(S__^RN:2,COPCE\(((NBE8Y68*;DG01 23 M"X/N7PTT+T3W0GT!X/^MOK11.YA:9`+1G,0+\'.37I?JPNR<1+-5%*'`]_'. 24 M*$I&MY3Q*QJ3<0IRGD`CZ]9A:L5=KJ(L2F"G!>XB@X$0)[3.HI61^CJNU"?# 25 M3('S:9PJC3!;H)K1S+K[.;3)%55\#/EXE.YR`=^<PU;RC9_"9!95PIFGY.Y[ 26 M_J!$^"@"S2-WN!"X"LP=[B1$C(6:Q3>@3OS/FPS>;^(KJO#;X8Y0ONV6..+2 27 M[H97X_1[_'"9_[#BII'3NUSS_ZBOIA8Q9[Q6\$%#,.)&I,$/5JXTZ*IPQM-P 28 M#-Q4C\.5F\<P-T+5V'.U9:55DRNZ:U>/5>SJ^<*N$!>V!.*76Z%#LO5CEEN@ 29 MLY,[U'Z%XSND8FFO+?T1<ZQ-IQ;2V[#IU31=05.JCQ^7L>REKFOZBKI,^>H+ 30 M^MB"T7Y8$_LR_`Y6/&@V[=-'F,.&5ZC;WG?`COG4K825TC*L0A2\7UKY50P6 31 MRP5MG"Z6ZSS"+A&C<1I-IRWR6,!,&*]7F#.4,":$<?V_#*]*$YIQ:403$`-R 32 ME+[4KWB`<O7%VOAE:&LR4%D3]50NIKC5W,VLN,MX9Y=S%68IY$A,U[",K2(R 33 MC5=9WO!R-=4HHVH9JS2SEA[%,Y[]<B7C*XO2D`7'5C'FG;N*4=Q^QE-@2W-K 34 M$DWC))I8<?9N'N:V;?\MCHB8@N?I3!P3M9-81Q[)S.RA>O59:OF$Z!4[4XB\ 35 MU]3HI0P\+<:S@,Q8^ZGG[JW]U(.580JTG]+Q.BL9^/X7A2HB5MT;5_H,-WMR 36 M`1^I\U-NT5:+V>6)DL*)<JE5]8+=XR12D,TE?L(75GYA-N_YP30G+.T(F8%2 37 M%_L]SO.#B:U]A1.:/-%42H8&'QI^B$&5W)U30%6L)-HY`U0'DD0]@VAGZ)+$ 38 MV,?6*H,[60$'6N)!.+.""I_5H((B*DS5;4?1>\96`%\*10?H_7IZ;G(YEK!< 39 MLP2'6*C!PC0._/8AR/J=?<CB)K<>LG7!,C:\AXEP!_R76+C+$T_5&TK3@.YX 40 M6QRJJ"/4D%3LD#V!MV\/;GL/V"-/J28J@F#7((VHH%U%9H6OHR<J;G+5<T_N 41 M\IV1`Y;<*3/:[K'TZ+&STR-N17?3X\<TVZ[G[T52+(ZFR3:XUTR3-64:VO9D 42 M:IEB:MEB76E3-+%$I6E\%<P!WVN9F(5E*"25+>,BA!/XAF]K;^Z^\S$?E*A` 43 MG@ZKMEA39^"XMKTKVLV?B*`DI9$%'"`+58VB[79?'__,=GZ..3`0W1^(PE9K 44 M=R`7#J>4;*-56MJDA'?WT=G6=0V*&V/AU!DZM1#'+F-![=`#;IB=[@8X:H+4 45 M3:%DZL5GK\L[X(S9Z<X`8+APQ,3C>^&XVE3?K)]Q"ME3J3H!C^IHOZ`-V]>& 46 M)9/30].I280=8Q9WC##AGE_,:!68+CTZE?VSIW*7U52D8:.9Y'&R%G,&)DME 47 MB!.$>L8>PF.NZP'*++?5\JL3O*LG[W!PLP@W')B6WNK3+LS),`<G/EK#@7,1 48 M9QB0V84C#HFXR35H8;K!7$_G:Z[VGRD>\1)H05;7H%/%K\<HSV,+"&WG@C]? 49 M`)418)>_4_[.^+O'WWW^'C2:)[]0:I.^-N0%_-'5[Z*%T'.DYFD>SD^3JJS7 50 M^>$,2R6S4=,[7<N2N:>W2F=X0S+3_V=D?65PAL<DL[$YQA-KN82$\^53Z`+" 51 M5F$R21<6PIPYU'4\C;2>OD/`50B(Q3=+,-M7`#W85VIZ7>RB/5@D2N0C[S[V 52 MJ;/WSY@,O6YE,DS'Z9_1*HGFJ`-."2[3F!2]7G52*(;3I\81X'+N,NB=LV%O 53 M0KV.N[0#@G`BO!7#J<!2#,R$\4L620;OW!'\.KB^-$*@(,JP$%%B;A*O(-PY 54 M`#1;IEG$8ZXBSER\!Q2UMF<@:U*G_,]>^*^YNRHQPS`&.I^-$7I5#`I]./R0 55 M1V_)&=X(5M`'_:<`[R!H>+YEKPV7<?>12B)NFN]\#'>_XS`P#4A6QM!@I/0H 56 M&!4I.PH21>I5\FBME9+4KTNY5;LE:5"!=:TG)&G[=%T[-5#>\98DU3LAAA>< 57 MNP<,/%[E4:)/%B(1[QPL&'/->L2L+-9+;HXL.%7I3,FP#&6@]-U`8M3<-#!] 58 M!RH0^FYP[I[AI'7=1"'=#Y8!U;I8[A$QD^C\I+N'\U*GEQ*P<0-\DE<DFW_6 59 M^J[8:E%[V'.2K5V7PP_[4K)U*FQ'O2O9NO^;;;W#NY871O/T32##RB`6\<?I 60 M)%X@L)-?X2JS1G83;VCTKQT85@<%T75#Y21/AU*W09S$50YGQXN=>!$E>-P@ 61 ML,"D?[1L`N.PAK[R4<W0KN+MZ0J(;H.H5!14LW<1)^G*^B,<IX\PK",TM<D5 62 M&>!$#I0`?<#2;49:\6K2RB1:YD_'RA7,AZS"*=%J//@-2)P=+BZ,7@T:*B"^ 63 M7@5T&VOQ2S)1_P0;U'[$UT[7;?HG1,PWUGIQO_S2B=!OGWLB9'@SO5_[_FUX 64 MW$?=NI(.;`C,,Q_#6IY1+]XV"^:0YVT3*Q'/17.CMQB!*^7]G*?C?9F9IJ2F 65 M3%'.,W[+PT0M[[<AAZR*@5''TVV&IP/#TUB44P6V9T=.%=G;.78R]WMGQP'K 66 M>\?=&9SL3JP$#FYDP5TV@N?F4<C;JAE;7A%B+[^SYA?EO%I9R.)\45;D579H 67 L[UPR%+K'VZFW%ZK'WRFR:QXC`'B_C+^_PU_9K?$';=?_:/P7T_42U+4G```` 69 68 ` 70 69 end -
Tst/Long/deform_l.res.gz.uu
r2675bd r760258 1 1 begin 640 deform_l.res.gz 2 M'XL(" )`IVE0``V1E9F]R;5]L+G)E<P#M7/EOVS@6_MU_!;=8H+9)IA8E'TG&2 M'XL("$QZ6U4``V1E9F]R;5]L+G)E<P#M7/EOVS@6_MU_!;=8H+9)IA8E'TG& 3 3 M`:S+CN/TV%F@`P1IQHW55CNVE5H^)`_F?]_W*.KPT29NT^YB$">Q)/+CX^/U 4 4 MO?<H*;_^VSY_20C1SLB+%R/O0S";W(R/YN&\]*O*$4>0,PZF'PF9>^$\)(`A … … 9 9 M:C@=(1Q3\=(/R>?%,/3YIV`2?/2F7K`(`7XW\T)O.O=&9.6#M)7G?_PTYTOO 10 10 M=A[,2C6V\8.B_.D'[%LO]"?0MJ3SAG,_F)X0-SPA)=E0VEGKU(S6@EKP9T=K 11 MZJRI&]-N1'O%3D"!-S<WQ`'-4$9(@@]D`O*3CBBT#6 &E^^#S8`[?.?XP7:3X12 M YXFHY]`S\\5L"MTRE(/#2#B,R8!AC1^"Q4S.@/"(G$_)X$J[)L,9*`I=YHU.13 M 4`PAPY!`O\S\2';+AL9%-?'RDU=L1*%+V;:H_K:HO7VU4^Q?4"R,U_%'WY.E14 M 7,@)1B#M2$Z.@`QO;[TP1$U`QF@X'S(RC^^\$L$/*$1>1VULYBD)O;F<^Z^C15 M TV2!E-VPDI[V\]-_P:GLT,&5N(89BZ5?N`'QHKDW':&$-T'[=0!)+$'IB,*N16 M \";OO9%$R(I4!^UOY.#*R(3WPX)PE/<"VY>M,B"I/_SQF`SRA2?.OLXZAW\R17 M T4!HBB*T(D6P186-[G(-C)PDZ@"+=!X+!A,R6L#,9/&"K76^R)E'J^]217V;18 M *K3:)E<T'I\6=":8S@SX$4Q+_AY"#;)YU(F@A=2$-1C1[H*>Q]!::BYH%U9G19 M 'RD2UBFNSQ[D10(Z@5H+VL-,N)+]03L+:DON`$*?S<EM,+E;S&5-H`-4_''F20 M >6![$#&%.4$\M61P,N4SZ*3$[2X75I_!28\Z>.STN'/.2AU,AZ/3I<+JL9)]21 M 3CM]%%>MDCYVV33`NJ>CX6R$$OWP/FWT!VO#A2NZJ4IXT:/"%)ER'"YV-$1$22 M 5ZE)H<CY=^EJ)+H&)'@?SF>+6\S&%!S=\),WPO/=.9-,D7VL5-*8^A7R-SO'23 M ;W*@#=CHI9U.*O:1ZJ)B#VUVT"&FQ`VO-*9=,WD4ZJBKHZ&.=75L7#\9D[^U24 M ,6GDO-V`(FLAO8@%!]Y>"!XOI%^QR'D;W<F<LAO0L-06;5#W%G,;DKG]C_[H25 M 'YFD5L%FP?*=PJ"#6#*3HPCZ3'&XQ^1V,5OB?/#2-3TB]QNMXR-HU70NAPFK26 M S_07->7QS@1)S5E9.SH:4:VRX?4*+>^8)@`GPTA>E;5*C@&SF\ZE"8SGU0A[27 M W6]>H<!K!B="2K[.2^AG1'T2J3ZTLCQAHB#4V('@Z);]9@&SQWHVMZVGL3D$28 M ^N,;3Z`1_'F(P3R4=+[?(II5&PU-U:;V.R!HJVK?:TF^WRIHA]H`U#)34NGX29 M 1.9/9/Y-9"Z0S+_8$C?\4A/4)&I'95%Y!P8`.*X:E?4*-ZN81.TJ)I74').P30 M )%\AC0I,X0PI%%+/D$:&K%>HE2-UA300J2=5BX)`O4)->552TUC"4H%""31S31 M N:G`!B*-1*"N8)T<!@)WUEV-X31(OA'(LJO\B"6IQ8B574,?="CP3+$<E_I932 M ;+N472B%I[()U&1$E9;EF)17J%.V@'98BDZ/:3[$(K+6HOZ[=1:D":P<AT,F33 M E9):;:6_2#63=>;2$G1Z+-:-;4G*<96-5]QD.^CLF)JW;-JB3Y%X$0PF:I:\34 M X2`,;D8WHQ.PYDC',_\6"&L*"QU,0N?=5SR"_?Z!0/]`?3;]`SWS#_1VYAML35 M >@:Z]`S`N9BRR6GJ(K3R;'0*<'.P/&UKI]-?1J?3]A2\BRP?`FKR9X*88,[I36 M Y)?VZ'32G@"(_.FWVGZ+1>4I3MM)Y?2OK%P=RN57C<Q+@,JA"6!X[\;^A[@,37 M I;5:[BKHS5U7H04A[[-)C.U\=L_VW`\(N;]A)^Y_XCT`5=C<JF(`:U8=.'.`38 M :B""!M;@=M6E+F8YU2Y068]WDQR'.U47>*4G70\+"KH'>1V'>0Z9AAL*%O4K39 M JE?4KJC<D[OQY&Y\D[NAM^YQ-PJ.A;3^8+BZR<&L=@ONA'(WE$\`!Y>[*4#/40 M `>M(1P1E=<!R4,R+]`#WU`V#VYYY(O>")*(^".JDBO8++H)P+Z2O(0R]K41 M Z_%>&V74BC9JOH+!&(_]NSG8IQ`Z8C$>SOQY3$AYKK6;DCPUG<U%6Z]\T61E42 M HC6U\3IKD,V-5[9DJPH;Y1;)$'FL>@S0Q9*O5S)\7V$H'R]9#`']"G<GEX(O43 M 5C*FAT2A+J.8KI<(C@1=8]"?2]9WK<?QMLEH_H1`L\8T]N/"S>385,>6.AX_44 M AB&Q;.JXW`93T;&Y@\:DXW*K2[OB,39A?\#&YK?'LEE3DY9N-/0'&IDO#MZ345 M \?D;&Q_#>*CQD6S(.VMNQ]2):'=).TYF?"1)\DY,S<6*6@ON+*F[PILYMJ#"46 M [,*IH*;MT(Z9VR-)J=1<K_#VCAUQ9T%=N+9C;CHK;H$7!G4XW<Q$2?+EG8C:47 M 2^ZL:1?4$+EA4IQ,3<"8*T&MB%LK;B<W=B')7E*LOPM2X\Q420*G-N@+FMNK48 M DEH"[93241*(`0%)X9):&^V4ZC<:FK2SI-9-.[4"M!.AONX"E!#<!$3:]_7]49 M QK"1QD[-'8NU<;/0:&;VZAP-2!2K.X5HE.3-0C!9ZP5;+]EBF9=J[=BB<VWG50 M EF%]TQB)V@\/8`X/9V1[Z3DVF3K8:MK!AM/^FE[&>)O07="7<`*3:DE?00\N51 M <*`NUM`AU%K2`?0H#/Z2]A:/<><0:-ON4NL"XQR+6GUJ7N(II+K4?(D&RZ3G52 M \J8=Y)[S<\SM0"Y$$S*W1YT>[;S",CWJ]KB+IU:/=B'L&,"I"S:@3UTLYKB)53 M )`>2E"3G@IY?T$32@)X/$DGN!>U?\#ZFF@/:'_`^IO8NN#V@%RCTXI)W7])+54 M !`PNN?6*7DK`2VZ_HB]?_:B8JZ\L4U]9IKZR3*J+^LHP]95AZBO#U%>&J9\L55 M L.2HU:X9\+'JDR0I%:GIZ8F1GJ1BM52NE@K66E)0<IY*%[7K0\UN%'-0Y#N-56 M ;CXSGZSOW]GZ'C\X],-9E<=Z2'OT_#*/[9`!8?GG\1R2(9!`9B!37LQMG^+'57 M W.@IGLR,7,J7F45+>5-I54.G0$U3U:!Z;:])JVMGV39E7:0!62LU;RO<'CRN58 M ;!BWNIX;-QU@JW(+-Z)7Y4:ENBH?5U@&-/)-2/RLRDU$M"J`K6]CZ]O8>H;559 M M[&-;:R18<4VMKFK@U36V`:VMH&R.<V]"ASO5;:Y3X%&;:^R$JMM8[5MK+XI60 M MU7`BFVLV)1;Q.I[]6UD;2MB=P;-R+`[.NP9--FY2NT<N'_$ZIG0(G9GQ/1-61 M ;*.`W1DTD6&U;>S.H!F)LMJ6`LV=$9,*&)D"]0)V9\1$AM6VL7M&+%=`+P!W62 M ADNU.U\0[\3FS&GNC)JV640D=6R5VAD_59$:1%E+8;R;.\.H%?!Y%:U\=[X)63 M GK!R:4GJT^H[/NT/WY+_F7LJZ*ND-)RD::E0+96JI6*U5*Z6"M92R>C_9*)264 M \>C_N,K_42>9QJEPD0H7QF-L\/#.._%=.R^U0_=9:@SKE.$&%U5Y^C_:8OG_65 M &LLGC_-O['$V6V</<SBW_:W,]]SC7]%.`:(C9,>MDI!6_J#"'F]*0IKYO89M66 M )RKS7/<X3106<*&"9J9#T5O*'-L]WE'FX^[QAGA'FMC<Z]WC!4E,^H2%IF7U67 M %[T?V<!&BA&9'D6OAV[4I?JRZ.V44A)H[W%O2BDQM/?X,SSIH_3A#JV1-:3H68 M R2A4>L]':R85%7V84DHP[3U.2RDEG?8>+Z64$E%[VRTII<S4_K(?HOI&9M*T69 M ,851%[)+O^*2T&20B@+$A@"]4/VF=T+UO+YT"(51J&_'.5$EE+1L_1V?[8F/70 M 6C65.JNQF<9F@LUT-FNP69/-6FS"IFR48^7+58_]R:2GT1DAKX-L\W$C,FM!71 M 9)8$9N0<(>%\5([>&31^I^<>6<LX2UGW,LA3ZZA[N_@ALS\(>&</^F1BP$,$72 M XEZ,/?(':5]%U^PJSA\.;8$SJ'(GY5JE_4>>TRKD:!4HR6(H*U^QT`L"C@LP73 M @3`]Q^6PXUH!IB-,Y#!1P&D%G`&XF$6LAL`(O0^.9?#`>%&XV-M3XL">.M:/74 M \KKKJ"-4D^B7*,JA;3R2:L-9)&(6%U4W"JHWTN*@OVI`C$K#!;[)EK0H2ORI75 M I$W8(1L]!L./3_SXS_.DADKRVXT\$490/MCC/V\;I_[S7WP?OMO^\\+S/\<076 M E/V97<BHZS)H3Z!(-@FUFHR;5&``[;A1L<%EP,Z#`DQ&0F@5WZ!5S-NOU63H77 M DECRR[!0HIFG#XKIQWEZOY"N2474NG\3Y>E0\U]HP)<8EY2=:/Y.5-+8)$_378 M *EOQ"B0F`0N<2*]9)MP7LIR0JGQ%1[ZLLQNJ2*\AQ!N@,36I!8,JJ!-3%X:W79 M P_`A-6I3EW72A]8(!QCN/+/D7#W-QP%&\G@``@"\?7#_@T*"XJZYH*)CTXXK80 M M\NYZ%C;DO1#)7%A"X<+TQ'<@C_'%9ELVH$$R':Y83H`M/#+=@5W=5:R=-X181 M #@-Q+LAS0:"+$ET0*;:5,GZN4M0VJ#"E!`N^J2FPB(F2A"7/009H#6)!/,K>82 M UPBI@RN5<%$+%]30MUM6__]N&<7:="CB&-2"/T<_N+5IO%F(5DOU@X//.BL983 M \E>7KS'I)`FB<LXY+)`27PVD+B&,48LZ&1*5KD*$)'""BA+FWHF"!E!\['_`84 M /8PT&-H;8'TU6-L?J#TTC$IY-HL^WF1AU&4>.PTV(ZI2Z??+\/?2[P/\ZL/785 M S^--@]7E"XXZ,[[&F_AJ<02<R9$S8[P'+:@;JZ>2=6K&W`*(#691]D0),/*>86 M ><0D@"N`$Z&!!D:%;#N*N1,A"\.TBF#68WE\8U*^QQQQ.Q%/4DE07[9Q=C@+87 M "UBI)I!O!^_6<]/A'9?NTMW]')S(X::%*Q9OC.IXA.6-2]P!LZ)3PX*%:<`B88 M QGN3`LC!!/K`&F%IPOK&-;NM!^\`S5CX1(%E.U2'50QGPCV<C1]'/>`880/W89 M 6$A7'53)UN492`!)\`5R0&7@&QN9"!#`24@]J/4AK=O'4<;!'`7L5$_82?X:90 M 3QSU$S@J=?2,LSU^*$87X(F"2_;L\^=G[-E;^!O=P5<0J`?*M_A-+L7.=(HI91 M D."'\GTZ(*$]O"<>A?>^ZB?^!OP&4</;&".)TELJN8C_1J-OX9[:X33S=L=?92 M N7_M\]\,^O:+EE^67\W\.0[X!Q_BGN=!<&,\3W;[LXG'\FG.\BDKYX[L<1F]93 M X!F*`?%RW9#/GU_#`IC!\4WT+:OWR:OX(2LV7:+UK9W1#9%X\6O0QOW4Y.(594 M YAAYJ(AO`.,(+(>S,E:>K-]7$?G:YZIV3>00(?;7X.'8-P?(?7T(]@$Z5"4X95 M ;3:$ZN&G8%5^$R4MQLP34JY56/DM^XW)S:/RZ`Z9+OFV$AP,]5TPCM-WG#\O96 M @KD/4R_9?/HP"R;)'M-)Z>8*'W\P:"P7;?#^/]XMK)#W'OX3(<3.`Y@20&6R97 M 8H3TP_O;H"9D@T3);<'!P\L(*"/9[/+0,FF7M9)_3(3_>V@1XHO0_RS]%_O398 &J=0Y20``11 MZJRI&]-N1'O%3D"!-S<WQ`'-4$9(@@]D`O*3CBBT#6$EC42D1M;>+"!0Y\R/ 12 M[BL_#^;PG0LX3+D2BG^>B'H.735?S*;03T,Y6HR$PY@,&-;X(5C,Y)0(C\CY 13 ME`RNM&LRG('FT(?>Z`3%$#(,E=*RGS8T+JJ)EY^\8B,*?<RV1?6W1>WMO)UB 14 M_X)B8;R./_J>+.5"3C`":4=RM@1D>'OKA2%J`C)&P_F0D7E\YY4(?D`A\CIJ 15 M8S-/2>C-Y6)X'9TF*Z;LAI7TM)^?_@M.98<.KL0U3&$L_<(-B!?-O>D();P) 16 MVJ\#2&()2D<4=H4W>>^-)$)6I#IH?R,'5T8FO!\6A*.\%]B^;-D!:_WAC\=D 17 MD*]$<?9U&CK\DXD&AE.<H14Y@RTJ;'27:V#DK%$'6*3S6#"8D-$"9B:+%VRM 18 M\T5.15I]ESOJV]RAU3;)H_'X/*$SP71FP(]@6O+W$*Z0S:-.!"VD)JS!B'87 19 M]#R&UE)S0;NP.OO(F;!.<7WV("\2T`G46M`>9L*5[`_:65!;D@DP_&Q.;H/) 20 MW6(N:P(=H.*/,\\#8X2(*<P)XJDE@Y,IGT$G)6YWN;#Z#$YZU,%CI\>=<U;J 21 M8#H<G2X55H^5['/:Z:.X:I7TL<NF`=8]'0UG(Y3HA_=IHS]8&RY<T4U5PHL> 22 M%:;(E.-PL:,A(KI*30I%SK]+5R/1-2#!^W`^6]QB-J;@Z(:?O!&>[\Z99(KL 23 M8Z62QM2OD+_9.7Z3`XW"1B_M=%*QCU07%7MHLX,.,25N>*4Q[9K)HU!'71T- 24 M=:RK8^/ZR9C\K8U)(^?M!A19"^E%+#CP]D+P>"']BD7.V^A?YI3=@(:EMFB# 25 MNK>8VY#,[7_T1__()+4*-@N6[Q0&'<22F1Q%T&>*PSTFMXO9$N>#EZ[I$;G? 26 M:!T?0:NF<SE,6'VFOZ@I%W@F2&K.RMK1T8AJE0TW6&AYQS0!.!E&\JJL57(, 27 MF-UT+DU@/*]&V.M^\PH%7C,X$5+R=5Y"/R/JDTCUH97E"1,%H<8.!$>W[#<+ 28 MF#W6L[EM/8W-(=`?WW@"C>#/0PSFH:3S_1;1K-IH:*HVM=\!05M5^UY+\OU6 29 M03O4!J"6F9)*QR<R?R+S;R)S@63^Q9:XX9>:H"91.RJ+RCLP`,!QU:BL5[A9 30 MQ21J5S&II.:8A"7Y"FE48`IG2*&0>H8T,F2]0JT<J2ND@4@]J5H4!.H5:LJK 31 MDIK&$I8*%$J@F<M-!380:20"=07KY#`0N+/N:@RG0?*-0)9=Y4<L22U&K.P: 32 M^J!#@6>*Y;C4SV+;I>Q"*3R53:`F(ZJT+,>DO$*=L@6TPU)T>DSS(1:1M1;U 33 MWZVS($U@Y3@<,JF4U&HK_46JF:PSEY:@TV.Q;FQ+4HZK;+SB)MM!9\?4O&73 34 M%GV*Q(M@,%&SY`T'87`SNAF=@#5'.I[YMT!84UCH8!(Z[[[B$>SW#P3Z!^JS 35 MZ1_HF7^@MS/?8-,ST*5G`,[%E$U.4Q>AE6>C4X"[A>5I6SN=_C(ZG;:GX%UD 36 M^1!0DS\3Q`1S3B>_M$>GD_8$0.1/O]7V6RPJ3W':3BJG?V7EZE`NOVID7@)4 37 M#DT`PWLW]C_$92BMU7)706_NN@HM"'F?36)LY[-[]NM^0,C]#5MS_Q/O`:C" 38 MYE85`UBSZL"9`U0#$32P!K>K+G4QRZEV@<IZO)OD.-RINL`K/>EZ6%#0/<CK 39 M.,QSR#3<4+"H7U&]HG9%Y9[<C2=WXYO<#;UUC[M1<"RD]0?#U4T.9K5;<">4 40 MNZ%\`CBXW$T!>@8`B]:3C@C.Z(+CH)P1Z0?HJ1\`LS_W1.H%3T1Y%-1)%>D5 41 M7`;E7$A?01YZ65N/]]HHHU:T4?,5#,9X[-_-P3Z%T!&+\7#FSV-"RG.MW93D 42 MJ>EL+MIZY8LF*Q.MJ8W768-L;KRR)5M5V"BW2(;(8]5C@"Z6?+V2X?L*0_EX 43 MR6((Z%>X.[D4?+&2,3TD"G49Q72]1'`DZ!J#_ERROFL]CK=-1O,G!)HUIK$? 44 M%VXFQZ8ZMM3Q^#$,B653Q^4VF(J.S1TT)AV76UW:%8^Q"?L#-C:_/9;-FIJT 45 M=*.A/]#(?''PGHS/W]CX&,9#C8]D0]Y9<SNF3D2[2]IQ,N,C29)W8FHN5M1: 46 M<&=)W17>S+$%%6873@4U;8=VS-P>24JEYGJ%MW?LB#L+ZL*U'7/367$+O#"H 47 MP^EF)DJ2+^]$U%YR9TV[H(;(#9/B9&H"QEP):D7<6G$[N;$+2?:28OU=D!IG 48 MIDH2.+5!7]#<7I74$FBGE(Z20`P(2`J7U-IHIU2_T="DG26U;MJI%:"="/5U 49 M%Z"$X"8@TKZO[S>&C31V:NY8K(V;A48SLU?G:$"B6-TI1*,D;Q:"R5HOV'K) 50 M%LN\5&O'%IUK.[<,ZYO&2-1^>`!S>#@CVTO/L<G4P5;3#C:<]M?T,L;;A.Z" 51 MOH03F%1+^@IZ<($#=;&&#J'6D@Z@1V'PE[2W>(P[AT#;=I=:%QCG6-3J4_,2 52 M3R'5I>9+-%@F/9<W[2#WG)]C;@=R(9J0N3WJ]&CG%9;I4;?'73RU>K0+8<<` 53 M3EVP`7WJ8C''320YD*0D.1?T_((FD@;T?)!(<B]H_X+W,=4<T/Z`]S&U=\'M 54 M`;U`H1>7O/N27B)@<,FM5_12`EYR^Q5]^>I'Q5Q]99GZRC+UE6527=17AJFO 55 M#%-?&::^,DS]9($E1ZUVS8"/59\D2:E(34]/C/0D%:NE<K54L-:2@I+S5+JH 56 M71]J=J.8@R+?:73SF?ED??_.UO?XP:$?SJH\UD/:H^>7>6R'#`C+/X_GD`R! 57 M!#(#F?)B;OL4/^9&3_%D9N12OLPL6LJ;2JL:.@5JFJH&U6M[35I=.\NV*>LB 58 M#<A:J7E;X?;@<67#N-7UW+CI`%N56[@1O2HW*M55^;C",J"1;T+B9U5N(J)5 59 M`6Q]&UO?QM8SK+Z-;6QCC0PKMK'-71VDLL8VL+4-E,UI[E7@>*^RS7T*-&I[ 60 ME958;1NK;6/U3;FM`E9L8\6FW")6WZMO(VM;$;LS:$:&W=%ASZ#)SE5JY\#] 61 M(U;/A!:Q.R.F;V(;!>S.H(D,JVUC=P;-2)35MA1H[HR85,#(%*@7L#LC)C*L 62 MMHW=,V*Y`GH!N#-<JMWY@G@G-F=.<V?4M,TB(JECJ]3.^*F*U"#*6@KCW=P9 63 M1JV`SZMHY;OS3?"$E4M+4I]6W_%I?_B6_,_<4T%?):7A)$U+A6JI5"T5JZ5R 64 MM52PEDI&_R<3E8I'_\=5_H\ZR31.A8M4N#`>8X.'=]Z)[]IYJ1VZSU)C6*<, 65 M-[BHRM/_T1;+_]=8/GF<?V./L]DZ>YC#N>UO9;[G'O^*=@H0'2$[;I6$M/(' 66 M%?9X4Q+2S.\U;#M1F>>ZQVFBL(`+%30S'8K>4N;8[O&.,A]WCS?$.]+$YE[O 67 M'B](8M(G+#0MJ[_H_<@&-E*,R/0H>CUTHR[5ET5OIY220'N/>U-*B:&]QY_A 68 M21^E#W=HC:PA14]&H=)[/EHSJ:CHPY12@FGO<5I**>FT]W@II92(VMMN22EE 69 MIO:7_1#5-S*3IHTIC+J07?H5EX0F@U04(#8$Z(7J-[T3JN?UI4,HC$)].\Z) 70 M*J&D9>OO^&Q/?-2JJ=19C<TT-A-LIK-9@\V:;-9B$S9EHQPKW[9Z[$\F/8W. 71 M"'D=9)N/&Y%9"R*S)#`CYP@)YZ-R],Z@\3L]]\A:QEG*NI=!GEI'W=O%#YG] 72 M0<`[>]`G$P,>(A#W8NR1/TC[*KIF5W'^<&@+G$&5.RG7*NT_\IQ6(4>K0$D6 73 M0UGYBH5>$'!<@`F$Z3DNAQW7"C`=82*'B0).*^`,P,4L8C4$1NA]<"R#!\:+ 74 MPL7>GA(']M2Q?I3774<=H9I$OT11#FWCD50;SB(1L[BHNE%0O9$6!_U5`V)4 75 M&B[PU;:D15'B3R5MP@[9Z#$8?GSBQW^>)S54DM]NY(DP@O+!'O]YVSCUG__B 76 M^_#=]I\7GO\YAJ#LS^Q"1EV707L"1;))J-5DW*0"`VC'C8H-+@-V'A1@,A)" 77 MJ_@&K6+>?JTF0Y?$DE^&A1+-/'U03#_.T_N%=$TJHM;]FRA/AYK_0@.^Q+BD 78 M[$3S=Z*2QB9YFE;9BE<@,0E8X$1ZS3+AOI#EA%3E*SKR99W=4$5Z#2'>`(VI 79 M22T85$&=F+HPO!V&#ZE1F[JLDSZT1CC`<.>9)>?J:3X.,)+'`Q``X.V#^Q\4 80 M$A1WS045'9MV7+E=SD7'VI:D'RJ)"ULX7)B.X!;\.:[(9-,.)$"VRPW3`:"% 81 M7[8KN*NSDJ7SCG`8B'-!G@L"793H@DBQK93Q<Y6BMD&%*258\$U-@45,E"0L 82 M>0XR0&L0"^)1]KY&2!U<J82+6KB@AK[=LOK_=\LHUJ9#$<>@%OPY^L&M3>/- 83 M0K1:JA\<?-99R9"_NGR-22=)$)5SSF&!E/AJ('4)88Q:U,F0J'05(B2!$U24 84 M,/=.%#2`XF/_`^YAI,'0W@#KJ\':_D#MH6%4RK-9]/$F"Z,N\]AIL!E1E4J_ 85 M7X:_EWX?X%<?OGX>;QJL+E]PU)GQ-=[$5XLCX$R.G!GC/6A!W5@]E:Q3,^86 86 M0&PPB[(G2H"1]\PC)@%<`9P(#30P*F3;4<R="%D8IE4$LQ[+XQN3\CWFB-N) 87 M>))*@OJRC;/#65C`2C6!?#MXMYZ;#N^X=)?N[N?@1`XW+5RQ>&-4QR,L;USB 88 M#I@5G1H6+$P#%C'>FQ1`#B;0!]8(2Q/6-Z[9;3UX!VC&PB<*+-NA.JQB.!/N 89 MX6S\..H!QP@;N,="NNJ@2K8NST`"2((OD`,J`]_8R$2``$Y"ZD&M#VG=/HXR 90 M#N8H8*=ZPD[RUWCBJ)_`4:FC9YSM\4,QN@!/%%RR9Y\_/V//WL+?Z`Z^@D`] 91 M4+[%;W(I=J933($$/Y3OTP$)[>$]\2B\]U4_\3?@-X@:WL88293>4LE%_#<: 92 M?0OWU`ZGF;<[_LK]:Y__9M"W7[3\LOQJYL]QP#_X$/<\#X(;XWFRVY]-/)9/ 93 M<Y9/63EW9(_+Z`7/4`R(E^N&?/[\&A;`#(YOHF]9O4]>Q0]9L>D2K6_MC&Z( 94 MQ(M?@S;NIR87KS#'R$-%?`,81V`YG)6Q\F3]OHK(USY7M6LBAPBQOP8/Q[XY 95 M0.[K0[`/T*$JP6FS(50//P6K\ILH:3%FGI!RK<+*;]EO3&X>E4=WR'3)MY7@ 96 M8*CO@G&<ON/\>1',?9AZR>;3AUDP2?:83DHW5_CX@T%CN6B#]__Q;F&%O/?P 97 MOPHA=A[`E``JDQ4CI!_>WP8U(1LD2FX+#AY>1D`9R6:7AY9)NZR5_*<B_&=$ 98 0BQ!?A/YGZ;^@U#P02DD````` 99 99 ` 100 100 end -
Tst/Long/ok_l.lst
r2675bd r760258 37 37 modnormal 38 38 knapsack 39 symodstd -
Tst/Long/ok_l2.lst
r2675bd r760258 39 39 surfacesignature 40 40 std_l 41 symodstd42 41 triang_l 43 42 zeroset1 -
Tst/Manual/breakpoint.res.gz.uu
r2675bd r760258 1 1 begin 640 breakpoint.res.gz 2 M'XL(" (4YR5,``V)R96%K<&]I;G0N<F5S`'7000N"0!`%X+N_XB$=5C!),Q.$3 M/ 407(;K8/12'6)(UW(GZ^:U1IF"G7?;-^V"G..WS(X!0XI#OX++AH%&5F\'>4 MSDHK%E[ F]">D1-51>;VU2G.@Z1$8+MDI/D(TCL6E:ZG2U-GR[Q6ACY+1*$U(5 M XQ1*XSLW,.M9QD>X3:96]+-L-FO%?ZQE.*',N(R:&F*JQ>J9>(.TD>]]]!^^6 .&V'K"^<% ^NY1DCH!````2 M'XL("$+R=E4``V)R96%K<&]I;G0N<F5S`'7000N"0!`%X+N_XB$=5C!IM4P0 3 M/$07(;K8/12'6)(UW(GZ^:U1IF"G7?;-^V"G..WS(P"9X9#OX++AH%&5F\+> 4 MSDHK%E[J]">R#%5'Y?76*LV!ID=@N&2G^`CA.!:7KJ5*4V?+OU=('R6C49J0 5 M1`F4QG=N8*)9QH?<QE,K_%DVF[76?ZREG%!F7$9-#3'58O6,O4':9.]]]!^^ 6 .&V'K"^<%/$@GQSH!```` 7 7 ` 8 8 end -
Tst/Manual/fwalk.res.gz.uu
r2675bd r760258 1 begin 64 4fwalk.res.gz2 M'XL(" $(-$%(``V9W86QK+G)E<P!%4DUKPS`,O?=7B+)#BI,22[:34)K#V"4P3 M =NENHY2,=24LE-%FU,JOGYR/]A#IZ3V]6'*R>W^IW@!`E_!:/<.RNW;KMOE<4 M ;D#0H3DW7;3:+$*&LH3O6]W^K,_'V_K:U=UB-YEQ,I\N@S[X[R*5<&G.)[C`5 M %@C3E.*HCSGVJQC:WT>;*:'Y.M8M5-+'I#SWBK%7OJ<80JD\<F`>%CL-%%4R6 M XN%#[[<)%XHSCR$H=IY"0$7LY+%"D<\$D7=#M($PJF`4J'-)8T$*,YXB2O3R7 M =MQO>Z]R+#+.A9R`(FL=9\E0.K%K:](BG#Q3.`(;3A@TZ\U,T6BW8<01C-G,8 M BA&[3IW+V4R9_&A&7R1:YU9`KK1!-(*RF7)SDTV"1APD\3L6:0)WR2B9+:SN9 D2?8DV9/E`L,ERCCWRW;E\$>$[_YWC?1J\[3X!WVL<P$\`@``1 begin 640 fwalk.res.gz 2 M'XL("!0%6E4``V9W86QK+G)E<P!%4L%JPS`,O?<K1-DAQ4F))=M)*,UA[%(8 3 MNW2W44K'NA(6RF@S:N7K)R=.>[#T])Z>;27>OK]LW@!`U_"Z>89Y=^V6;?,Y 4 M7X&@?7-NNF2QFH4,=0W?MT/[LSP?;\MK=^AFVVC&:#Y=!GWPWT6JX=*<3W"! 5 M-1#F.:5)GW+J%RFTOX\V4T/S=3RTL)$^)N6Y5XR]\CVE$$KED0/SL-AXH60C 6 M5]Q_Z-V:JXP+CR%D[#R%@!FQDV6%(E\((N^&:`-ALHI1H"XEC05E6'",*-'+ 7 MYKA;]UZ56!5<>IR`(FL=%]E0.F^4MB:OAI,CA2.PWD;-RB&1HM%N9;\(QFPF 8 MQ8A=Y\Z5;&(F/YK15YG6I150*FT0C:!BHMS4)&.)1APD\3L6*8*[9)3<#4,B 9 BF9-D3D8E@\M2=/_6KAX>1/CM?]=$+U9/LW]-@V&+.P(````` 10 10 ` 11 11 end -
Tst/Manual/timeStd.res.gz.uu
r2675bd r760258 1 1 begin 640 timeStd.res.gz 2 M'XL("%0H<5$``W1I;653=&0N<F5S`(U2P4Z#0!"]]RLFC0<H"V7!6K4!$^.E 3 MB?%2;\:VP$Z;37`QRU9_WUD@0*(UW0LS;]Z\'?;-YO5I_0(`/(7G]2-,36V" 4 M4N;3%5"TDTH:QUU-[!?2%(S\P(T1@<+OH#:9F6RZ]JAK/Z)"G96M1%^-4]!2 5 M'4$G<12&,7,REK.""88N$Y\#[SH%J0RH9#E@"\($9B7(I,=N`LBVRL^WBO78 6 M,@#*_6*,W09`N2_&V%T`E/LXPGAH]1SE<W>6>WD7%5[11<(3780>=E'63\CI 7 MZ00>0/*D>QY',NX.]:CY`R)$(T(4$H/&>8"]+>Y!UG!2%$F%HBV@UI6&JBA. 8 M6J.@EP%*<SQ4&J'5+HE,^O>MQN\+]OT,Y$`I:_.5:6OG?`X*_CUOX3LT7BPM 9 M65]`GEF'+;DYDE\@;VUEL(!V:4REG=H=%"X9\)R"W5V[GZ=Z=Y`E_ME<FV8G 10 5SZTTIV4<9!PR]&KR`Z2ANY,M`P`` 2 M'XL(".9-9U4``W1I;653=&0N<F5S`(U2L6Z#,!3<\Q5/40<3C(,A":TB&*(N 3 MD:HN=*N:R&`GLD3=RKCM[]<F%C"4"B_<N_?>R9RO?'D\/@,`+>#I>("E:0UI 4 M9+7<@T5GJ:1!P7[AOE`48.2[*`TG2OR0UC"S*/UZXM>O0@G-FIM$WTT+T%)= 5 M0>=I$L<I1@Q7N,8<BP#SSV%N4X!4!E2>#=S6<ERP!F3><SL"[*2BZJ1PSV4$ 6 M;!W58^Z>@*TC/N8>"-@Z$B..QDX/J8@&JRJL/*K#VB,><H]$*#QB_0VIM8Z+ 7 M"TB:>WN0Q#08^HGO)Z-^$H\&K#V-;,TWT\[K]1H4_'M>XS?HC,K<L)XQO'+V 8 MN^'NR&2&?.<Y*@\!AFRS@]O#F@^-VF`0HC.%,&PG%.;\Z92"2ZA+X5=[OLA& 9 ;_+G<FBYY4\&E-G*##++/=K?X!3_3"3T3`P`` 11 10 ` 12 11 end -
Tst/Manual/timeStd.stat
r2675bd r760258 1 1 >> tst_memory_0 :: 1 366370388:3.1.3.sw $Id$:spielwiese:version:nepomuck:3063682 1 >> tst_memory_1 :: 1 366370388:3.1.3.sw $Id$:spielwiese:version:nepomuck:23797763 1 >> tst_memory_2 :: 1 366370388:3.1.3.sw $Id$:spielwiese:version:nepomuck:23797764 1 >> tst_timer_1 :: 1 366370388:3.1.3.sw $Id$:spielwiese:version:nepomuck:1071 1 >> tst_memory_0 :: 1432833510:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:10186768 2 1 >> tst_memory_1 :: 1432833510:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:14942208 3 1 >> tst_memory_2 :: 1432833510:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:21233664 4 1 >> tst_timer_1 :: 1432833510:4020, 64 bit:4.0.2:x86_64-Linux:nepomuck:416 -
Tst/Manual/timeStd.tst
r2675bd r760258 10 10 a^(n-1)*b+b^(n-1)*c+c^(n-1)*d+d^(n-1)*e+e^(n-1)*a; 11 11 def i1=timeStd(i,1); 12 idef i2=timeStd(i,20);12 def i2=timeStd(i,20); 13 13 listvar(); 14 14 tst_status(1);$ -
Tst/New/grmodexamples.res.gz.uu
r2675bd r760258 1 1 begin 644 grmodexamples.res.gz 2 M'XL("+ER2E4``V=R;6]D97AA;7!L97,N<F5S`.R<:V\;1Y:&O^M7U!A8A`+9 3 M8M>MJTM:&['C9!`@R0[L?%@@F`R4B'&THQLHDB8YV?^^[WNJF]TDFQ*ER+G, 4 M6A*EOE175YTZ=>HYIX[]]MO77WZCE-(OU%=?OE+/)K>3HXOS'YZ=*!S]X_SJ 5 M?-([/#G@7_7BA7HWOKP^&\U/+V\N1K='5Z/W1[>3T\G!VZH2\T*MCNU1JO#= 6 M^/1L=/;U]=F4CTC5JS+NA3J_FJB_MHL<'Y_>WDXO1U^-9J,+]5SYIKAO55\< 7 MX5?5$C3K;/3NY&`X5#?CZQ_3J?II?'VI\#ZUU8*#S__[Y==_^^KSXX,#I<;G 8 M5^_4^+DU>6X'O?E@,5@>#LYN3GCO4IY1+]&,=^/K'_ZG5UWI?3?O+P9J/E`Y 9 M?OX^4-_AKUQ:\/QPP&[-1C_V\@&_]:&"#!7JF)V/WO=>XB1U6?U\?8GO\<W/ 10 MY[>7QVK\O55]->YE>.`_LW3PO1FH=^>ST97Z8:%.U>7I9'R.][X_G_RLT,OQ 11 M"!)3J!M?1T<:'X//T5&ZDF69?/KI2JZ.,="\KGY!X?85S2NFOI+55^P!#ZHK 12 M\I1+-3]__EP^_$I7ZGKD2B.[5]NRRP>0<DM(V@_TIHQ>[901A.(/:S%];RI! 13 MF<,'BJDMHB0>[5-'*]'H))I*+,V9;030[KS9[/AKZ3@TN5<7:7^E.^_&-]?O 14 M1^/>RX&T?SQY?WX[Z5$8AX.[GJK+I:=2':]P=MCQT*%H<B76U[O$>M#6O;[: 15 M..M5?TPM^+41Z+B$03E(QZ[K>?,XM;;X.'P\/@4^`9^R0]UW?;:GP:[/]O2X 16 MH^3&M+FCY,9TNJ.D:]>YNUZ4]%TEMTNC9+%9LKM>E`Q[M[,\4-E^)2-*FGU* 17 MZKR9B_>4U/>ULS9VVNQ=TN[]=K>/E&@SM-^[9+%N7G=]^+5I=JM/Q@^M4?V1 18 MDK(DRO37@_2=X<<,\$WS<#;Z2;W6>3)9/Y__-.F]'BB=K]L..=]A/7JX6=F, 19 M6)F,K0NU+:FM0&4QXLJ&M"\D"Q)7!F3CX?(A%H0F0FR^K(VT(F)&Q(Z((1%+ 20 M4IF2RI;08&3[_.JG9S(M4RLM@-D]OWXY$ONR]LQ]#_(9TSR3[?L,;4X6FV?V 21 M:9O;>,]]+^,S?N<SW0_RF:+KF3M>QF?"(_HC5DH_[!G:*VT>]`PM%RCU8<_H 22 M??NCFV?,(YZQCVB;>Y"L!8_$UCWTF<KJT;0]W^>7?*U8!V_;_,71EN'#[[+^ 23 MI=J64(Q9%@?-CZ9--(.LQ,_!RL\(+U3;SZ`E;#L://_H::B/GL8?PM/8PZVX 24 MWX=8D\Y'A^&CP[!^YZ/#L%'RW]%AJ%>K-S`M^:#W?E"M5@K+E3@+7S;&]OQL 25 M='K16YALOL32M,C>\X]99N\7R];R5)F5"Q@=-1[=:GD>![TOL8X=GB@LJ5?7 26 M5]GE^=7YY>E%8X!8MK%!.+N^F$[.KZ\PV=_`:F3J[!\:<Q5GR4K`7N#('E;W 27 M#.X=I`MRP]4W[-:-EGVY/+VA-6'5Q]WFC^]6&Z_<UT#1/,$ZB1\B%\3:J&1O 28 M#F3&&1D)RP$^2,-;_:R&L2[!"^SFKG9N247MZO0^;5YKL+26,U2S+=+4UADF 29 MD,59GO34MKJQZ@-:[ZH.V#LZL#9V.YN_'(VO5<]\CR4C]8--O8$63WH_C":3 30 M<]&D08Y'GLGY,]''U5>^FAIH_D&VXTN>R(];9;/T6V[HX]:E-)/2\)GV#5W= 31 MV/F.R?7D]*+]#ENUZJ`U@<QJ`M4>.R82G*E#(46=9I2JIM-?UN:3V36?>GQ^ 32 M<U)ID];G]FS26]-(/W3^U.]2]2N>##Z30YF,6;4LJTZ,I'N@*X-W]Q2J9:"V 33 M>OI(`#2IB:EYK3/3B7S:U8V\:YKHU?S0'1-#WSDQS%-,#+UK8NB.B9%NK$V, 34 M[,$3HYYCC;M6KKMK,C/:_II<^,,Y;/]//;:WK7BC>CE0JEB3Q=O=GEE1QQ9] 35 M)0W_E,+(BDUA-%=J8:0K;6%D?D]AH*!\1!BUXL9F;U/GZWN;G,!M'98)_00J 36 M3([[6H8@>7_-6*1W]`XE!CQ0OM+19#2^QDE27GX_X%"UQO;KW6/+P+%/HRJ' 37 M6Z;,MTW92FAZ?>:+>]N6FEQX"K%5/=B2VK;0U)-U<O7654=Z7M[S=*^HY6@V 38 M+.CT<LU^3B_WDR'IX_RG'I7L_&ITUFMMZJ/1_Y)]_]8U;CVT3D_4_ZK1Q>U( 39 M;14\0=MNKL>3M0I1_$1MI0U\#+E]#+E]H)#;9ZN0V\O!J[9Q_`PGU!6H#-3G 40 M`*U4Z?2`5Q;I:KJYZW#>'"[8`HKHG52L&Q%^MH^:=<?9UJ)P#Q9M'5;K"J%U 41 MA\NZ0V/=8;#ND%?2S,T@2Q7*6BNKZ[#5]M6P'2CITN][\SCVS=S8,U>CK3RO 42 MUY2G_E3+:*-*&S<:Q>JXT5G52M-6U6W>6-WLJ&KQH'=\H!OS73<6CWC'?->- 43 MUOQ[O3[_/L;%/\;%N^+!&R4_QL7_[>+BU;+P10<VTOBTT0?DX]?)YXN[R*>= 44 M!_-DX-."FVWP::!H7_#YMMEK_*+>2VPM?\GU>:76>_WMOKVN\H;N,(1FH]`# 45 M)-21!;0KV:=?W]);.3U5ZLZN6Q+`V\ZRJ!)QNI)=JGR;:JYLW?+-NYI;NLZ> 46 MV76K@IV[\R8XNFS1:IS5G6Y;+G[;NI?5OMWRV?YY?G&QZ<ZAYO'H=G(]'JG) 47 MSR/%O/&1NOY)G7[5^)YVW?<46&I[GW+A-XK>K3E^&[-Z;Y]/E->N9O-3^GMZ 48 MR]_3S2+;=FS6_#W5[=UUFK@.[V[=MS/`V+T=.].X'P_;*FOVG%H;3JW=IE^J 49 MJ/G&SM+N%(EU<F^(?"\6[^3P3@;OQ.Q.Q.[$ZRTD[43>';C;2;2/H-FDP,4* 50 M-EVCRHE',99/0J#WD>>VTG>0T<8DZ"BQ,2DZ2FR1I=XLL44KZV_K<DNSS1(T 51 MW9T,MYK0X=X2Y:X2JPD?[RN1$A9W4U*7B:@_MIYF31!;NU80VQ\UQVO_6.=; 52 MK`)_??-F=-M8]M6EO6S[[Q]:Y&*V8RE3*9-A,CI69Z>3T]2A\>G5&?Z\&UV- 53 MQJ?<;554Q-N)+%'?G%Z.4.NS'T]O)Z.+J^GU[/K9B;3MTYOG5L>H3YIDC-ZG 54 M-X?58C:8#F8I(T,R,"0EPVMOYPN3Q7)H[,)B===#K^>+9=_:H=,+L^S'.`QQ 55 MOC3]H&VQ6!J4*89:ZZ7M:QV'?'[:MV[HP\),LQ"&T<R7TW[IAL$NEE,41P7E 56 M$O=,&/IB/C5]G>=X&PY*,]2Y74Y-A@J,G]J^'9KY8I85:(]?F%E?FV#T?#GK 57 MNV&!ZF990`F]-#@P4<^GLRRBQ:ALEN&%<8F_J"KJ*4IH8]B\&5YH[##DBYG) 58 M"C9KB4L.%?HI[[FAU3,[H!BT-[E9H&-YH2VE@"Z['%)`+P*;2CEX$PWDT$?G 59 M(8`EA98[0RF8@)>8:3]$'R@#[?*\A`SZ$?UDJZ<9CB!?RD"'DB+0J"10`NQI 60 M`0F(3#2%P*<@U)F\')*#%+0SEF+`*X8&0IWU/;J?4PX6!Q!#/WIT'W*0]N7E 61 M5(2H\5+VGDVF'/HV#,NXY"6+2P4$D974`0@B$Z60(@9"Z)<A+R@;JXM\ONQC 62 M:+3VD(WW#BW((.0"/<JTML.(+J%GI2[1::.U8[^@4C',9_T233;HEK7>8R!9 63 M'@.0>6_TS)RLIG2/^CU07V(F"1:^&:ATY=.;$Z6>/3LY>/Z@KP.65Y\G8W*L 64 MOE.M>:/^?H!)\`:3!4:O)W-G?;;TSFYZ_G#PV>&!^HMZLTI^4+/S4_6)I%-\ 65 MPK7JN?JFR452LBNNKJ:7/XS&C3<A7T^>-:);-]8VQ\U][]B=-8+NO$[K,(U4 66 M[WI\-AJ/S@[K+(T]4ZOJ%**M9!"W3@`/R9UJZGS:W"E[;^Z4W3=W:JW;:KN[ 67 MC\^:,JNL*9NRIG23-:7OR)IR==84QO7;-R^_>?NW_WK[^2=GZL=KSHCYL?J/ 68 MM:_'J6OFCMMJUVAE9G>H:_;H7`[34E=]L",UR36*5RNEK1/;S'JVWP,3D=QJ 69 M;%L5/OFN2.;:8%JG_G1<-=M(UHP]Q%]]]LE;6A>0>O.K@TD9=5.FEC2^.3-U 70 M3-+<$4Q*VG<@:6P;[#.ZN#@Z*X_>A4>3S]Q@37-A6,0Y%OPB]W'A^J$<EAYW 71 MN+AAQ79S`A`90"_LLH^%+\P-2:C$`5'(!(>E$5?*5!Q,5(8%R<CJTBQ=G_`3 72 ML9@NIK+VXBG@@39Y&1<6C!3P=@-&\G9HB[G0DBNM0Y53819#X,!A#GQ!O60H 73 MZ]S23C.'93MW<X,%MM"QG!,ET!NNS+QF\3)`&XX,5EV'F@U)`4N^/.&'-LRG 74 M-B,KN,64)&=SO-2R)3Y,76;*@-H7X"[KV.I99CS;8$$3MM1L]JR/NBUD1#H+ 75 M;/2,U`A8F9//K-=L\DQ@*BSY(+J&%H-9'!I*;IQE9?"@3-**UD"T.0&N*$`4 76 M"R),U-&CQ8`%9\HX%ZBS@C""-1`+B$\@2-LIWZ`+]'%NB'5>$\IX9'.@%JYE 77 MM@33SDD]4@M!BMQ5&K?D;4_YS8E"(!>BEQRBWY8\162+-DY-@D>T?V;['DV- 78 M"QQH$AZP!JKD[!1_K+?YS`U`HYZ"Y&L\$;.`8@"TRZ$,?5_&"?H&+G51<!MW 79 M*$`TL<PC.=/H(<>\#[3&4!`O'<<[<YH#PG,H&W'3&4J<FN,+([`I;R&#.>BU 80 MT":@T!5+T1HB*8;>^]+,19HEZA/N!/ISQ*$F#DH$LM;6<Y2-"T%&%%\.@A*U 81 M=X1.KZ7[&*G@@Y%QTG[H#:$S%"YP'!S^4N"^*)U(=N@]<%,$9#'HCC./BDV= 82 M(I?[F&-J$C>9'@Y,QI$1*L>L\E2X?N&+@DQNJ+;BG'"P(2QH-J@4PBD@M5S$ 83 MY9VCAX([@1X*A@`*)/+*\R$[-F4UA26=8[)"!2&FB)'./:=/B7D&<1%_,2TA 84 M!3:,\NJ3<#D2!&U'.0BI`["="`UU)JF50Q\I-6MT0=W'@'KQ6-";G&H<X5CE 85 MD3(S+FK179<+IO.@"%.1'C5W9G]#8%X9VS\_+K=O=.!RNM%!++\;1Z^6Y.9? 86 M(M0<[1_+T>TZGY"C;96@OYNC[5H*_UT<O=%MM=W=QW&TW>)HL_K7!^X>CO;R 87 M\Z$YVK<9MXW+;H>ZK@-V2\$_,&#[;<!VR?O9\OD>"-A^!=BM"I\>L'V-TNW4 88 M_XZK]P"V:R#[7KU>%]!3`+;X`ZX;L)NS1P)V.'I7/!JP70R::$TBU`L'`"*F 89 M2"S-E.`)`'4,0Z(KUN_"$J.S,F>8RW+-Q/JW!*`6(!F7!<MR7,WC,(#%A9B+ 90 M4HC98:D.)&:)*&ECYH(^@I"$(U`O@(!A*>N%DXF!)@HFZ]Q8L@#75P?:X)$! 91 MU).207`Y:)#!0&?`@E8BF;8D)4>LV(#D`FZ#L+'V'AT",9',`$P`?'9H1LHB 92 M<6)M#WZ8>)B.@/=+EB;!$P0B$$P@&+>,(#`@PB<$!M2[F!@8`*%))S.&6T$E 93 M%02#TK10<.%MHF!CAH`0\H,9.KL0'"93SX4DM*=#($<0<Q3TA91,0?2%;P/J 94 M)&BXLB#0@450GU"O)S27P%Y0ELF)O6@3Z![4RU$(4;@WSPMP+T=>>Q<-1]X& 95 MHCA=*6(RQ("Q+PBS@K=E"C0SP,RX,L<?M1'GK,C/00'P$-B)&N",,U0`#H86 96 M#<"(%;DH0%$&<9B(QGB5C#\D&<1CP@,VSFL(MJ4H0&&&UHJ?9(L8T_@77HN7 97 M!!\N.GI)<"5(S^PM8Z54`+2KM-``H&,DK=(K`C1C4`,#S,DG@O^6BQ9`Y$Z< 98 M(HH0`T(MB`:.(;TB:Z@B"W&!2K1F(6,-Z+<QJ8*/]%2FLR1_J@(G3BA$$T#@ 99 MT&4"-QIIE^F2R9,:8%!+40-X%W2S"-V^U'G2`VD)(\"ZR)>B(YAEI2@!G(1\ 100 M,:T"YRXY/SXW3M0@0&L\G9\R'\9`YP>.D_@^,BBEGO((+R\#'2"Q`YQ@%I[9 101 M`HJ88[;VO03/YTLZPY#24IPY*!I]Z9)B[X<<)F`JOF*DBTQ&GXJZ0+>K\'$! 102 M^N960:2078%^2V0<+NAO&E%>&<L_/R#OC">WG[!_P$"SVPXT/QJ0VW4^;:#9 103 MW0W(IA6MW2_0W`0CGP:030WRTDBW%FC^`P)RFX/=+@[^G2+0G8#\)!'H-B!_ 104 MP`BT;\>:[18@KZ[N`<ANSPBT>_((]#H@-V>_-@+]3RLFWS^:C[/('>62,2^K 105 M!:P6AKO;X%:;<1%S$O7RT>;`B0R@*A$O73H2+B-?C'>56.W!226)9FY(.40^ 106 M;D9K%W24\&`N$47&"1G&XS8U5LZE%`[.,3[H/7!&T,CDW!^OC@I-Z#&%Q+0( 107 MF%'VI;6W9=J<9TB.^](9#H`"@!XP@4[[\ZZ4%1XK,EF&4<*,:[Q`)7'12I@0 108 MI.:,;-'K8?#<H0=GD$J"!V"18!EAG=E!)2T)@S+Z:!;D1:,E5&B+$)F](#%$ 109 M"(U0!YE!BO0,,B]Y`$LA/X`-Q.;+/&>8GA!I16[:#PO2N`1\(5N)M1=^+AO9 110 M*4[H"R`-Y<;<AI@2&=BJ@DX%WY43))V$";UEV'?&G7]F2,PR8!Z'8R8==9+1 111 MH*-LY3O/Q`63D"882@SBA)N3HN*%$PH,Z%,=]"X*2LSS.0D2TC'P%)HI'+?R 112 M"61H%I,:!%49;(>:@0)%7I)/4%)>J"IG%)I!5\_(JH"S$R?-%B5E!E$9"4-# 113 MVE8BJ[EL@TRYQV`(U$#R(7<=^"8O`I-8/D/16<F&Y&D/(^`5D$\IOAT%599N 114 M*9(K/)&:6R@I$`V(+%)@M6#J`=D.8J">%44H1<T`BZ5@--U+$1GTU<5%`F:S 115 ME*T%S:@JYY0/HF)Y*`Q5S$3H/S,>X"7:%.0?AM\TI%I;CS\_,.Z,J-:KHQS_ 116 MNG^V_]015;N5D9!@RC_N_W1AC4\>1[TK'\'NG8]0=5;MZN3CHZA:;60CF+5L 117 M!'-'-L)O!XE;NEM#8ENO?N<HJHR*V_QO5+:T],&(V-2;(HY[J^@#`;')\>Q* 118 M4=`/2%'8)X*Z4N@/FYOP:T*GX].);)<]/G2:,76/R(6UFBLHMX@M>='HA>O; 119 M@DC!)`63,WN!@,,=Q(5=RLZ^98X"EDQKC`380"82'S-9S+$$,V'1E0QV,EEA 120 MZ,+298SRD$2GA!'G4I9"#`RT23P%<"II"EI"6US@N5CK.D\A2M!-+J8L!2S! 121 MY*MI%DK&BAA-+4)*:TR9CI(L2L@,/L5?&<71$G^37?T\1>!,U,Q3D$"Q803. 122 M<)N<`3BB4IPZ-$GV>0E83,\D8`D@2J9"8,",1#@CGMD4EF-(BQD$3%>`9(N8 123 MLA4T&BJ!.=Z/$I]E:)59'9*>8`HCP=J^82*J!&M]D`@=0W_@"@G6VK),L5H3 124 M7)!\!=)S"M52&(5$:A-C,E:;@>%T"M&9M(=<[?=+ED(L@3^,U1&9)$1G"TE0 125 M`(J6$I\ST102GF,&"7,].?#>6$;E3%X:)B1(6%S[*7!0]OBI.Z;O<L8&;9\Y 126 M$99!VNB<*!6PKLPE6LL-\LA8+?C9I,P7#H[SHE8^):HP=B\C*S@-KA3%8G8K 127 MP[;#0K0J2-!.F%K"CE`KQO.T:)5V1:S4RN<A);_$*MEVRM!_D73*.09,<<^R 128 M,M$I5)8T2EN"8L+P4HM&84Z4'!40+&%80OHEMP\8TF4`74OBBT\9R+9*6*!* 129 M,3-8<E\*<6\(H&$(@8M*B+^PE+`M$SJH1.19T29Z`TS%D'!_="G.*VD&#/3" 130 M!$3J4@;>%4WBF+DJ^863;)ZREW/N0P!?K9&X/W<.8IETR4G(G]Y:$#TJH32: 131 M:E1K^BRE(L6Y8*Z6V'\60I[T"8Z;"RGT[V(=]/4YFE-GNJ2D%^F<E>"_9CA; 132 M]"JI)?2)J<>,_4/Z5A3,,26!P7_N>YB9&Z!`+DHF'@UW@9A<7'@8KQA+L5U9 133 M$4S:$RB3;.G91C%=?1JQ9+J8W.S%=-&OI0\'SZJ$MP$C%G3Y?^S]6V^DV98= 134 MBKWK5Z3[1;O!S>:ZS'53PP<X@/4@H64<2#;@)P$MJ22WW:=;9^\==$8<^[][ 135 MC<L*,BMOS*KJBVRV*K>8S"`9C/B^N<:<<UQ0NE9_&N17@>-"?M5C;965:^TW 136 M%$TT:AG>4C0D^\=.7F&5_!?2J_#B)5UD()-S6;!OK,EK;*3!2VR_Z*&=P?Z) 137 MH'B@5+79N338OSB&SBI:*>V.G25JS,ZU02G@*54\C8:B-<",*8<YHOW![F@Z 138 MKK#%)@HEJY7>>8%-<%ETA>UJLNLI-PD=(WWR2NINK5"O]BU5,J^P7%L3OPJ, 139 MJ.9Z-?%>L)G<_=F:5WV8ZKCYG_&"J#P%.?6%5*W6Q+&:O6BM@#T>*TU6!\C6 140 M*HNK7E"1@QL&7)U5*X::L*/B5;3PNVO1Y(MM8F#`1=,^+,2ORCC]]O6$UJUQ 141 MSQ3[_^%:FR.*]@NI8LWDJVPW>+N6[;YN7V)9A8R$>#'X)I<-O,:>HO,:`RVN 142 M\QK+=:J.[3JD*I:]?7Q8L;!\&K@<4<;`X4JZQ'KIV$*1[]99Q@9Z:5QB;=7& 143 M==1L:_`":ZT,+:-&XBX2)#!R]W(;*+8@[_6NG60E:8N,H\@L8`^[R#=>6ZUC 144 M[K!OO5UHYE5UK`]4K[$+[B4>M!71>=@)#CA,`->MHB-&FX]K*R9NRYLNA9R] 145 MI:I<53Z.\I2YI-H7Y>1!N$NCCL%:%VL7:%I]<E4%O4+E.;C+3%'IXNB'5Q6X 146 M59G,O8>BFENH!-"J:A?W=N$/6&0^\;TGL9$7E44@N`EU1>V:OGA!K<)1#$[` 147 MF%Q<\C5)55NK?:*H>D%[D%F^!`!P'*;]6^%\G/MBX-(J3U'V1DFQKRF#+^S] 148 M^N)\KA11O0K(8_L^QZ66>"+NVHHKXL:JFS0XV=6'G#14F)2YW=['8D;)FF-I 149 MV%18KGE)[;(%!B1T-KC^]H44C:*12/L9"TVE0E):T^!D:$3W&+NL0#.S#T04 150 M54P^Q)![QH1J<417&YBENW0TTD")3/I4V<#N&S2T[A<.KU'CZ&24/"Y:6B]R 151 M^+!D#[XG^U4.;0W3XFO=5WOSZ.0WF)S<T?4_[>A$O=U7^\#OC%%>VLLO#E-> 152 M_?,7G$"_NHF3ZV/[3HOZM2%+^^2K?Z-1RWU)%9_OYMK/+$'[+YV^O/R0'Y_" 153 MQ`>E>GPZB_E\(A,O_WTVE_FB2VV\>97WLU?)J[SVR>_RQ__M\M=_^.D7:&6_ 154 MI9.U1K8>Q>>GBDWK8W_6S?^LJ__ZO]9O_FM\\U_;UU6F+R^SKM6?__FNZZDO 155 MO`\_O^!^5%;>7F3EY\/R\F%]^3!>/FSGNKG_$ET?_KI1F*ZZ-]2BQ_[Y#1\O 156 MU>1,S3X9=;WZYR\M6%_]\Y<F:/H>O[86?7ETUG\^,WM54UQF0K)SC(T^*38_ 157 M.$SKGJ)]=EO^0]R/KZU#?W9?Y#?=%\<N]/6?#]^K0B^WQ:O7[!^K!'VZ4_[$ 158 M\^VSC?//M4_?^-?ZS7^-;_[KVTK0?;=]_MQ'F-\H09]>E/_0.^Z7O]5/_A:? 159 M3#E?_;JO?KWO[;]S_,5_R^N72[`"1#!R%7=[@C8<\!@33@+::V/WVMNU@Q!: 160 MUW[\[3&`<3^"7<D/T>OLOFY_[?QXC1MG,"-=VXTSRODQ;AN\]MV!5/5Z#:(I 161 MMGL::^XOYO@(\#8XX!J["ZH`ZYST8-*`$1[0_PUDUH8^LN[ON3$Y%%Z#8Y'K 162 M#6Q0DBWW1W50RM0>=_^PH7SC3+&L6]^HN>WGM''_RH._!0FJ(*V*U+A[#XQ8 163 M`Z`_TKJV"SJ+NG\-;%`#`A**ZFNMG;\'B7&07.UG=1&?=?\>N_?$D*E*=<^' 164 MHOT,=!CXY2]@6"Z\<FA*=[^"21SZ4FCA]R]3\0WP.A8Q9]-N4F^!IY#K;L#P 165 M4>VMWAJ5__O]"S6G\R-9!!"G<<J(CS6]QB2E<)Z(AXZ!9;MX!OL=8;^./G=P 166 M65[X<:K]RC8GI[:@E=)P9;\M:MS]<_AFHAGJ:S_'BH\JF`3\<+_:L]]"$\*G 167 M\;%RA,QFOIY!6<'G$OBF]2)&0$5G!ZD/)\I4Q66]M1<R+18IQE43)SR3*CKC 168 M;O'V9W?;UD$I4#..139XHH._.\:+F+B@OP]>JQ5#[R!7,S"'(4_ZJ7V\-$R$ 169 MUKCN#_97/)7]4C1.DF:]='9Z8U](U`SAG=:6?&$4#D[IQ&PRGL&>V$^Q@1T* 170 M85S<--^>>*/`4ZZ96P9JO/@^W:#/7^F*1_;YQ&OH&<JX/G@1::(T>#MX5]\" 171 MUQ&%3M#>4>FW^!#36]$QX]./5$GN'G<_L55W:X\/,),HMT:UV<S[0GJV>!$= 172 MZ4-T#(FO%@WB>U;(SO9KM:\CSDUY&:&]S;J*\,G&JQP\V<36%H\@QX57T?Y= 173 M0[L(_65DDL\Q#-N7R*URHE\C<`GAUXV6;T'V2A8%!9TQ.`]XZ?@Q*+57TEDJ 174 MB+-Z0.=%2\I&#E[7_$O@2NF\QB'\`A6$7SF#5\C-XKE]E8V;"!^M<%C$Z3/G 175 MUU>,X0KXZN4,3T`OQF>#3^!V\?9B8NQ=]=1W1;H$!S*1]R5)ZL2^A?&Y*"DN 176 MC3/(V+5&ZLF%MT`$G.#-C*:_%[P%S^;OUBL?FV(_P<J)'UDOG-",B6J.2PO4 177 M$4S+\!%]/?`N@&3,<G;EQ_C)'/1JR`.CB<JG,?J\^D-4T'@NDKZFCR)N0)*) 178 MMX'C(DR-B]8B&*9*L]E`E2Y:DF1.ZZ[\"]PMKOH\IT\<U5$:.A;O:K'F]VM^ 179 MXX\:C>-[;F%BP.^C:&;)RUNK%R@;,+HC<WJD<=7'^]+ES<W/S\`&@D/1"ED! 180 M7HE2,1^F+4=9%[RH(_:SKL^L+),++G+LJ2'='ZZ,G5[EE@>W!>;PN])W#O4J 181 M2/)X-9^Y.1L<&..3W-GQXSP+[D@N%7&&8J0*^3!FD1R)E<*[;G]3W&*W"_=( 182 M73LZ?CSU*SVS(A;*$G"$8Z9;R`2?F==X!?^,ZMQ=1B?NF>?8/[5!GX!9[1R8 183 M4X4NJ/T>['_E4!5SOMBW%B22^/=>P.*Y[']N'<XR^*CVA,EQ/)3<V@7?&+N_ 184 M_4X^-PS6QKSN#T8J\_;<]H/;?KH-8[\RG_OO<7#.04Q1RIJ$%)BT"E&@7&#W 185 MLR%%W?=.)Z*HF!X'`8,N06`*U!A<&5Q3=*X<!"H2-WIX^)"N$[BAMS:%*GK2 186 M\8-]K">T0!W!NVT#BYE6(:[8Q2@+5V2KJQO>*RRWVD-K^R7H6-KQ/+CPJ54B 187 MBUWFTB"NT`!\`%>(+);R1A:`*?LE#2M@:Q6T6(LS<F*+,G"A`UD,*L6!+'J4 188 M)60Q>IE&%OL[YF)H`<`B:+'/PCZ%+";VJT06N"3G(K+`,#(96:B>\,.HJ0-: 189 MY#HWHL#I#4%+%K;`H1DZ$_9KW&$M@X*+8[T36^Q+=U=#8HN1]5#BC/ZD9?F% 190 MSC9ZO?GPO)K1!<O751+YC&VL,4?&@0T(L_:K9V2AI2JQQ83]#\!#!0M2X&*? 191 M:CP3R)<;V'@"+W25H@TM2.K$XR9IG<`8BQH1[HM27L(5"T?AC<"$6VWABD6& 192 M9^`JP'V.C=+"CA!(0LLX@`J:.C5B"G`Y%S#%ALQE7B]"I#F`*?:_[9K368(S 193 M(06IBH04#QQW"U,LOH&AD7+=F(*2C@9,\5#*QDPD,Y)1F8TI>DQC"BJ;<3-@ 194 M'1&\?J2,#J$*RICR'57@M"*HV+".U:W"WHD(!9ABOV95B&*T.H$GT`M@:HX# 195 M#O/MAC-OOR\?=7`7(!..N*?8BQ+9B$IYY3&//1<PQ7X?9A:F*-R6$%.4X,%; 196 M3,7LQ9B"VRR"A_W"3R&*!S(NT\$4!212(0E41^&+MK$E0(4>VX4IP+@PI"#G 197 M-@M4[!MF#H(*EOUR4,4^T[74+$)67./P\4M+PCO3(`M68'M?0J@"*O@J5#$@ 198 M8KM0C]8;(<5^/W/[>#N0@ULHT"FP;S"@V.\AT43L/N5*#(%R#\2Y3RY@"=P@ 199 M:`R(%8@WO3'4!<653*+R">=>F2L33'"/4H4F5N7ZA9MKG,2Z/K2I+N,JQ!%I 200 M"D^@RDI21BG3@,2/G^\PKA">`+4CA"<Z**JWT)H)KS4/>6BG#IQ(=B*X:.U! 201 M8*?O0>>-`R*6\,2^%M(4GMBGT,H'393]FA\TL=^+680F4)%+-Y[8Y6TT`PK4 202 MYVY`P>9J&5#4I%.1CT*C9D3!4C0',05;!3R*?\%)5XDKT)0L`@LX:>QG+V1! 203 MZ(0U*VY)X`KP2:!BJ]@>%J&*IOX4N`)[H4E<L8\B@#YAB=('UX60:PXP9RK8 204 MZ4.H@AYH1!4P+PNCBJ@Y"56`"H0/]K6=$P$%^.FPE\`WQ(XN"5%L^%*6$469 205 M`X""O(D5A!3[0_2%^Z,IC2%`0V24A_VYSJD`$,6NE$%$(049N,/HQ`I/!("* 206 M&+1/P[_O:DY4D2DUW-BAS]Z!*41YV:@"IA;]`G0Q8F,*W"V%<PJ@VZB:4^`< 207 M6T855?W]_G=073:HF`=2X%P+00IP@;(1!3K#KCD%7L"4A"@F*QKH$)FO`$DW 208 M[!R)*#80(YS8A8:4^$#I``5G`PMBA:O<:>I^CIA/H,\"G&"C`$"Q+_$N0,$B 209 MK4D%G%`TJ`A53LPI8&O1,*@8O-^Y`$?]D;7&!N7)8&*XIM4;J1E#@PK\?JU^ 210 MU"0"8%:(8A>'6@^@`.&$#YB\Q04=H%W5J")'#$TJ>@%'9#^K?2\6@(E]+N3) 211 M,86TI2&JV>!I4,@4\9RB\W7DH&(_I20HD?L2E-BU:'8AB7U]]3.DH"SUJCE& 212 MKN;)$3[$G&=(D3<4.%"BY2$H@>,I#I:`.E-3BDIS$8XI`#&))?;-2W&(.$K[ 213 ME,,_]RDBTD8&Y.PO#2H6!CC$$P]+A#O""*F).:C(6!X3C:2)6QPP0J8E5X\L 214 M`#9!@R)K:'\.Q/S=L1)1-#HYXH-]W')(L=\FX`FP!`OQ!"=P?0.*78$K\<3N 215 M8'L2GJ@^4W&(HY_:-9\XG'@"""1Q1D%E=#U$_V(\L4MO(IQX(-V18**EH1'% 216 MT.Y;,PI>1RS_.']AMO3Z(1Q%=%(9*_6B?0E-[-^`UP_X$8GC"9&B,O`$2#Q# 217 M>&+CP:[Y!#;[TW`"WQZ%$F=]!:@BG)B55]#S(^=\AA,8$`[/*,;43)&T'0BE 218 M!2=RQ=#-@"+.A&(WH<-HHK5A--%P?!!-@+94""8HAUU"$T"P<WI"T8A\*1<? 219 ML*+4(&*_1<,3"O0;<QI*9%Z&RV!BGSJS&DM`JIYN^E&9I<M@8FE`P<(0QA,P 220 M[>P&%%"R3`&*?>/.FQZ0R1+A"][A(AFBT\TL4('YVT85N+[W#<1SK/.:>CXW 221 ME2!%3N*;H:D+G>R?7HHH`)SQQW*$XG>BY"4P\-`Z@!2#*:S01GF'Q'.8` 222 M&AB"W5XFG-@G8W1.)S;<*\(2O+`$)G`W2[_.$S@U80F@@)D-)43\$I88NZL[ 223 M6*+/:2Q!GIK!!,Q4<Q66V(?R01*HH#4+2I#+6\]H`L.K_M'H8?%]U#_L)SR- 224 M)$;'38U?!U)S<$*$*?I^I_EA'T4@(@U4>+)I!%J?14$2B@#PX'`"YDM5,$+F 225 M#((1=;%@/[/SU71"PK4E&+&_K'3BB/;DX<1JI'H"'=@L`3"`!FGX<,J]`3!! 226 MYK0"$D4P8I>P*1"Q<&X:1*P6!!%F10$;H$YA++$(._"I_<OCW<;GTNA$$#TB 227 M""#(;292*#/@O1HXH+K0@P9D@@_81,3QD:_\:%\=!0AB7XK0K3>VXWF# 228 MB"+`A<$$["^,(?;][ET'R5_`$'@;-C9OMUVN]EW']85/(=REN%E(MB2G<A]O 229 MR2@B:0*`QZ^5&F%$!KHRC*@IM.X@Z1&3.XVA)N<2#7:^!!+[=X"K``<3C6.) 230 M08\XX(B-_^J&$9$H/N/&`Y<WYQ*]Z'GAP&;?PL%$Y!F82N",T5`"A+$A'+'? 231 MD-F,([*:MIN_1/,+H'E-)?9K5SV6V)<QW1D('7;YUE""7-FJL40=]-T#'[F0 232 MA\5]Q^[GNZ82>"L2IQ($[-AX8$`R@F,)3DH()-K0RU<XB=!Q2BA!2I:6'H3F 233 M57"B=[6A^K@(3E`'.C26:-V4:RPT1C&8V,<6#@N#";KO<2Z!+K(>,)%6)9A8 234 M&+Y4,YN)$<EW7AS47*@Q[9U@HO::A26@"!62X)64VGWIX5.@HH->!A-LYXK& 235 M$PL]"-&$S$<()CKINUQUL`?;'\$?0^.)P?).-)%$/6UT?\O<>7#1LW]X>QAT 236 M/-N`HB<O/?85U)=W'NC,#Z)84#$`4N!P(J+`2)@X8;>21A2U^:VZ:><P!2F` 237 MS(-K#^HJ!2JP<MLO@F<4X->N`ROR-*=4UHB\.2J/Q5D(+![E#2A@D0(=>4B, 238 MF#2GF$-[#TY;<'KO"\MCB@U7>;=S[X$QAM8><';6WB.!GDS,X'N<0XI9ET%% 239 MAECSJLU(4Z<I5-%D;'W,9J9PA=QIO/O(/M5,%.Z3VX\U,!;A;,(O"1GIZ^GL 240 M/C#H:H(6+(C)<XHIB</-\XN9#K38#?-]^5'P4NGC2C1SQAW>?&!A:%RQ)![A 241 M1T]4CU1^T=+:8T0;GE%D+0J(*FK=334_ZD04.'B`*+PB(J18&_@(4D21JJ18 242 M2POI!XY%C'Z$*4K*A!1XY>8!%;70#^BF`Q^&ZC<=FN$11=[=HC#%H^W5B[^N 243 M>^$1#3(4K@(@G.73(OKXJ'5&ZFA[-*'8EVR)`RJ2<!V_'7XA;S9XF(1AA2[G 244 ML_7`GJ5\]&BB5OK2&&8,3RF`=6!V2#BQ)*N6!PS';>6@B>&M!_C,/7GKT6>< 245 M"07Z#P$+NLD+5XR@C$$+D-8(+#:8&,(5I0A6J'/3V@.XN7'M@4)(A10G%+KE 246 M<*8_%:T].H\K@HFB"BR009Y^YN:#^O0J=+$?@SFRYA5S=>&+O%^3[-U'W?CN 247 MZH$%Q?.$+)6G%^$$+S:AC-W[CRR0P2=/F,%&E\:1@;*#632P1!=/-S#>:8NS 248 M"MQTH6$%SM^;8$BH1`*E=/B?8HM2X$P)U('5*:'&I,?D!A-1@ML/N<$39G!. 249 M,8`#-L@8H#;'%4O`2HB!1U:.>A]X4^]KAF5[7\5`*P-'WNT!)IHHHX_KG,>8 250 MO`:GO!P^!7`%.LJ%^V-?'$GEB3!29SW@2%CTP1Z;5RL&/)RE<;;4"_%'95NP 251 MH49@'P4J_KXGFM0[NV12=@&$L#\*+XJQNZH\??&FP=47G^)$]Y$4<\K2EYD0 252 M%R[P,M'$OAZ7CMS]NGL1@`L]M`A`R\TY(G1*HW$]#"4'.G?@Y<7-\,/JNC^! 253 M#O@J<KA`I@".9^)8'O9M:7C[$#0&X"YBGL$M7H-01=QO1\W>.63LSW`&5TGO 254 ML3^H7`,3U6'J>*'Y,/US>;]$T4ZAT[(`CE4]!2D);1^.W!CLEF'ML[>GLKMO 255 MF.ZRL7J0TRZKX+ZQ0&10S25V1,G=GZJR?"#O@/H43(TLK=M7WN+12@$B*R`\ 256 M5[7RY<!_J`+R8,?[7-4ELP!B:K#+$(_,Q>K'^2G7*W!,2]3ZX-Q.F2UW@QD; 257 M!_0:,ERU]/>2UYVZ#\&,[3[U#$^3!UV5;(+>:IKIGEW]4MO,EXU%CB]J>.R^ 258 MKP.UPX"B'R\Z]2<+'$25>('1W9)O@-.G>,#S+']?W!K:#R]6.%!@]ME;Y>Z0 259 M9;/,:DM!%`^`)+499[TL<?A6A7TYOGZ*B,)NEM<[9]9:QJ.DPQA71\:8DS-8 260 M]8!+6_%=_DK2F1"%)A?/5)"VK/%TIQW=$>FDH4&SA%;H`2?=1]#CJ;"Q4F,# 261 M@A));XF;)KPPV7/;5U'7Z*[6%FMP)5N*'^$2U"0X]K6/ZD='"<QY>X'I&&K" 262 MTV(7!H.WY_;[1]:VADN>G+$':42K7,<J.P](>;![(!UG%]N&348'SXHB"$XO 263 M'VDRP2+'<[239(5&H39,<+&C(3\&N_Z16.6H0B$&H+'T:JYQ7++#IZ5(/KE? 264 M@J!UN-;JK'%RO0[R?N;NH=;:QVI<CG*V(F"$E*6B86SFYE.-YF"9>^(=>6&G 265 MD57J,/HKKG014RRQS&?!2E>-SCA]K<:#;+VTML*<J1(-DI8#,A5(.:QUXM%4 266 M5[M*^:V$EX4D&!P-K*@H8M314>EK-=N%UW7G/8DKM&FR1.GL5+UCH^NYIV;' 267 M%W;]J!O<DXJ;4+748-N"R?S0I!.[:S07>-I7286CLN`M3I/VJ;\K0JAO")8\ 268 MD958\CBH&BIZX.;LJA3::M6$LD?SE.FRAQ:>90_O1IFL>G!#X3"/DKF57/9R 269 MU/["G0H275"".P=)U#YFM@=E8.[.<C5YUA*/EZ4QDCB+)+GLUVX.5;XE1T26 270 MRK%4^"HANATDD=<CVE.G!$DH/_$;B*KD(2:KV^S5M*;$#"#KF=O5`+ZL\):Q 271 M#7IE/O-27R(H-2Z8*YV`".\`J#)K7ZQQ2E_S7H_H&H<D-UH-S`16.?C]K8]: 272 M`E*HQ\HSJDO?K*-=31OJ175/U*RSMINJ>P!KK:CRM2H%I^=BU>@8!;MY;1<S 273 MMX^>G%6:G+/Z34XD^8,WFBN$M-Q@](_"EST!V,%5O37-PMA8H31N:'23IA&" 274 M8#V\<0'%.1CB@``O)^*`.+.J(2I-JY@>;30VTT#APTZ<0#%E";N#I8JUKY$Z 275 MJ_YY]\6[^N$-4_4+GPC775<3GF=@BK@OO`9V!%?Y^,7%,24O8*CZ=2C:L+Z* 276 MMB$N!T\I]8\J;8O#5V8@B/!%_5UG:XS:Q9$J(#9SI>1'1,Y#Y7`?](\'#7WQ 277 M`2Z'B@%2(7<RF"C%(0ON,K-*Y4F@\L?AVKR*G,J]DYR:1-Z]`-I[OO*0%UQ: 278 M;W3$DDL"0-_0E'UW;*'JAVK2ZT>5/`C[-^(+S`A9^X)=,`34I*UBWJ-9ODT, 279 MV`'SFN#D\R(G!C7`Z*=J,0>%9DRL??!X:L)Z(QOKU9X%]8K<_BNSJ03U9M9F 280 M!P"/NCP4OOU4AY!>VO!Y%S[>6IBD8TZ)LE=1L+"@J8BG`I'#W(,KA@QBF0'> 281 M=(_0L0%"MTO,.@GU]B\2+GDQ-`O1[#X)Z>U+M8O>MZMM$M*S-EICD^[9.2!1 282 M(\[C6I`5#WD&')WO$I]/P9MG;@[>"('>`X]WRQ37.O5NUTOO4Q"XH:'&/A"O 283 M)F%4K;V>25Q6L:,T7PVM,JLTQBB>*K/L<5-1*([N6;5NP`1#DX;=ZJ+2U1:< 284 MCP/6E`285\E1(N,@J<YQF5%4Y\"6T8IB%E<Y'+B@5JK,/34-$?:ECU`15:%2 285 MLR<'^X*[J4RNC>!8K_:;5BG,94[!%&FAYA$?[Z6MN,IQ_^*NGZ2B9I"W;PI5 286 MN;KAL2#>+H(J<:H/[&V9H4']/^X78#30A%'9J)N]2J6-73XXA]/H3@IQ6@N+ 287 M$9B)[W`FL\B-SL8UR$HMI`;NXR63`XC3@W/W_9!=X]H^=MM#U,;R%B0I[^I6 288 M*YL#1IAHIDRJT>Y>X6Z"VJ8X#-2V&%))[_95:TBLYD5H11N+Y6V5<PIWC^Q> 289 M,9L3QX];,!:_UHEON+&8'"3C!"7W<M^;X.C?V'$]D34/0^3>.1TOJ:"V0;Y= 290 MV;^B8`SMHA\('-C`IHE]/]CZBX-CLA*]17Q48==(G.,!%3<2;UC<H/?V&AJC 291 M--^$%XX?W,<&FRVTR@-#8YP'DVPDO"$*KH%2@E8-(M&MK,%VJAPJ*DEDANH; 292 M%?RJ;Y,D#@VMN0AD?>N8<@C<R7M.BVA:JVA$DMEQ@2RRF&!##@@N*\Z;"Q71 293 M^%=0Z5#;D#Q#`GW!)16RKK@TC.WVJ\@UH@B1SV`S"MKUU57A`BX='`]&74)U 294 M3^0KW+R_K$)U`$M-O2Q!/_';[M^:*QP^*5!7TU2!ZSPYF);3^LWKS$K:\GX5 295 M.E]:R>.K.UEQ=X;H:"SB+')]2&!R(6.[&-4A7F0)U='L+XSJ,`1@G:M3\4#: 296 M2\O$@K\4*3A%[#?&%!;6J^Q*Q]6>*MWB+E&+6IP]^&@-[?DKULZM`]4U!1;6 297 MEU$E3?;<8;&T#+`]6/$P97=3FV3(PTME=#.[<$6ZXK7<0Q5O'S:[Z62G*>\C 298 M=:JRYB"3G'O.9UDA&MEQ"<F>-O"+JN)AC56-ZW#'+6]*PTTMR`B]:CRYR'9Y 299 M9I8,VF].):7_%P7;;6W-C<CNH278S*#JL4U3?4.^TG,5*4FC1%SDS21ID`.? 300 MU:/L-P"4YHRM8*!Y+>QJ<90\MW]D:T()N_[_4&'_':_KS_\Y/A?@OXZ2:9__ 301 M\WS;+_:9)I9?I_3U_=6_B3Z_'27B8_]<H=_O$2SCS__C_)E6?W[J)_=VM?ZG 302 M/_*7ZO7[A[\8'_YB?DVX_[F"OWUX^:^__/<5*?_GFOZO?/V'[XK[/WN)/WSV 303 MTOX&:=C[Q>"KL?8KE=Z0COUE&>Z'3^2P/\]O_J([P(]]1?GAKZ@__!5P%NA? 304 M2MO^\A]K7W_L*_H/?\7XX:^87Q<@?\\7H?O/^,Z?[WHE?%8"/GQ^Z_\V5I)Z 305 M<3Z[O#[_+"ZA\9G!9/WB9^.+GVU?_&S_XF?'%S\[O_C9]:7/?BDP_?5;-5_] 306 M^<<T@I@Z6>K]27QJ!#$^#WAX_<_]VT807["1^((%ZS^HC01_,1^6TU_]%1N) 307 M^>*T>@Y&7NT/-'[X>:A$/_6\O9R8O\A38MZ=>3_Y:?]L#H/'^64;BI][);PR 308 M?OVQKR@__!7U%Y?$Q_&=/UU_/GSO//_YE?'A9U?$;_CVO?5M\]LUOFQE\05_ 309 MWK<]LKSYD?7-CXPW/[*]^9']S8\<;W[D/"XLY[3^\JFMHO^V1W[I(/C>1=M_ 310 M]N>+GB[?.+]_7JM^"ZL1_K+]7$HO?RN?_*U^\K>[TTH[;^W+W_HG?QN?_.T5 311 M!'KULGS7E"3OWC7_Q1__F'ZQ,8ER@N/*W6P?'"]V1'AQO"B*>8`?,=>58B#0 312 M=9%KE[EIN='$5>/%IH4OPNY2@0#RH45)G"YV6Z%BHCN],XXAJ0ND`!@L8C.H 313 MO<F#:4&8-B[-N,%3GF3%Q"HWN4,$J(2<]X:(,1I>D!DSE3)=E7$QN#->F+UQ 314 MLBB:E>@Q7'QKLJAE+F>,3.L3F9;6MX4$G*6IX@-C[;0RSA0GRZH7_M(7TD8P 315 MA5/^@[RF,?6>7;J$QUCT;"UZI"DRF@=VS1:9ZR5=`M=6\[X\><IFRN24LJ:+ 316 MO71NCA^:Z/"5J=7):V/.W+@TJ=Q%\<-,B](+_6VQE:.U"P@)P<D<E0CXP:`- 317 M/FH["W(*WOLJD4NK'B^*04(.2]^O'E4-B18)M&T=&C`N[4^8T,V5,8P>LXDR 318 MYNM?3]QRTGAQU*2-<9M/RSR95,K$@+%S:8K9'U($-5[,I!%SO#A63YHMYB?M 319 M3[BIKUZ@P`_5H\6H97AA+%V8#;!%G1-S=%8OC".%]`98;-*20@)>DE,H.$$( 320 MH*:,TTJ#1])#.5C$PDCK8M+Q+`M9]*=`:#7'BEC+E^JQ8J2E-<HLM5Y%/\D? 321 MM2^)-KU#27+UT#HEYS-2!)GK+%'6$,]R<8^O93`M)"[Z+(C66IX4>3,7T/5& 322 MOKXP*[/7Q:"QIZP]"B=]6J0,>3\?`4:96J9(;$]NXE)"'[QF.-K%R!`6!*3+ 323 M+.SJ&:_'E$9R#,?@7'%?WHESQ8:;DG/%1D:DN(A%J3JA2/B,=4II*U$)"98N 324 MUBF0\.7G]ON9]E73'BJD3W$%`:NIXNU7.HL0./4T@R]@7+E=/NMB2,!1\D`J 325 MJ1)J@4`8193`7K@O+I)!T12U'D(@&&"BY]/YAQMC+&OD1O180AN5_>*N*JH, 326 M:$9DRM`\YF%Q01ST4/:&6,;3-!4G"9`:^2+C`_B:HY+-D'<+-09F;NR:!LJ+ 327 M9`5+=&F^/>8!UM&DP=HO/:[L:G$`6??0DF`[3&58XGZX:O&-*E>+K``@$N+F 328 MZ$)7_W&*'.0UHL;,,N0,\\"?P2])4OS@8I(C#"XV;)U0L\93%2=&0A\2_DKZ 329 M:/E?H<R*E+#%U3#]`K`UB:5=7)`O@.TP%0G[\FD@%G54-BA[7-GHA2VV?:9K 330 M/#Z"M948;4.5+=,V@NJ\,E7:\LQ=BV%<.8<-DW'WL[)1'K*\&N:*D=J\`C)X 331 M)9DF&E5X&7KGCU5Z>COOT+3?!&B<4TO;8;PFKF-%$;$,L*\6[Y-NJKU)LYH- 332 M+OP]BPI3$:D@1E^=6II`RCN&ER:P)C`3IF:2=@XIIIH*0WH'%\3[L(!A+_G_ 333 M,)BRH!YD(I`!265C@>,:B%HQ"=M":Y.,Z$P28OH08>N9/N1>%*,<K*DBMYKX 334 M,`^T9;Y9.]Z;2.5IC.RER9(##A<DVAF*ZS>DI&+EI&\-EB5)3!4Q:7K_:-K? 335 M?5$,*W;38>B4HV4QM[O:G$R]&'3P3ER;LNI!E4-SFFRCETJ&L8N<;E24M'BU 336 M,J9<7]8S6$NQSLT%2^>02<&N]S*'F2+'0`,J6B!L3L"-$:RSJQR$)(\$=20& 337 M*HU`F5B3U)B@'1WVP17V'H@HC9JU-=[GL,B`*HAX4`FK1D@!=(D;AP,,1->- 338 M[.BHD(3N&N\$(CKJ>G`'CX*ML:H>/H")!U@;.&@I;;9*1!M%R41H_&1LEP>= 339 M+*`%S-2>\KM/%;S65CD[X]4I-GK04]=J6,Y[DDGULR\N3U(M@U+217RF"`TE 340 MKY.S46SY14(,KV:1`5$>6K]:HS2FR(#,EC,=,&R@Q,@&^`,1R:TYAC?&*R@S 341 M958(1:90N<[EA;&L^VW!!H(O3=$9H0#9TJ`!%J-X,]?%Y*`#T\E-(+`GWE=3 342 MHR\`V8"0-HL44Y-(`L\,0\M"='6`_?DL4W]J0/"EP[08VKB9`%T2`)<<U[(4 343 M(.`P9*E*'[F@5NEKW+J+]`QZ(-,B*N(-X+B^[WRR_$S>8I5:E%H"PH'-+=F. 344 ME/YX9*\'U;4F"1?7X&N9_QPAI[%G>.\/0KJE*]68+B*I]-5Q)*3[(DK:%M.[ 345 M4'6O4PK!QQ76/)'9">+@5=99\N:()!5O$2E&_'U6N\/$IW(6]E)2G()<IS7Q 346 M%-]$M+\E>L&S1(QCJ.:M,I90'<TA.XL>64G#]&=Z@(D&F.6")61W$A'NQ5#[ 347 MXM55]!:59UH7KVX.X&`B<K%#"/WKH:.$EOZ9<2IUJ>`!C%Q5T1`&0]ZS$`.] 348 M,&99$KO"PH90CLDR7!;3YTEJD]VS#?E?Y%G)`LS4\#R3*`R;?6A3(?N_R*EB 349 M3=2Z_;/WC=XVB,KL9"N%X5=Q?FB*Q+TVB!WA??7&:6U.-K#T:'('&XN7_NV1 350 M%&A95W3Q8[+>1A>UKA[VH9R,;V"6(FW'Z'0XN3&QH#1Y5"RLZHE(ZT"E<UA@ 351 M(QNMDA_3Q=PFXV^XU,$-'^R86.+]03-(,=SC81_@0Z)^T?YRGTTM;$O)U!BT 352 MF4/0#JP*%3J1H<GWJ\0&*'1HC*0%74^BQHC:(NZ?A)$*;H`9E=A_E+K(_N\A 353 M>DYF_U6*IE0!:<=APG.S,=O%BBM1`'?U(@5PO]XYU,/&E*(>S`'J*2N5>VYA 354 MT:62'L,84:@]X`:%Z/)@"O?M(M.3V.5N@9,8]FM:PGG9UD@@K]#WZYF$GP7B 355 M\\3E1"0WBD3TT'V0X(&R%R%Z3#S)JI,]HCT6433S=*F#?D$=;)UT0V+*(P(P 356 M@^(/'&TO7!B5.W0V9CV/-,V/F::6D],R30-<(T(XK\2)=WEF,^@N%D^$0*_( 357 MB(("13FXHIY!"I.-]&HL"SY"J4;X$-U1L1D"N)!4?$!-<CDQ&>O%-@E=[,/L 358 M*GH^107Q8#>CM"KP5$:HZNU#QH*/7;?)^1$>@W^868*)4KLB),<$6%:]"!(" 359 MI\*J0$G-IL9T$HO%>F8_?1,SD!)/V1:I.Q#>&\)X#4&91_K15>X>Z4W()[H; 360 M8E6[79+J(<9$=;%;C#>EG@/O,,A]S7(/D)$KBQU:E\YB-SJCAG!U;^SM_A6. 361 MM*AU)>8B&;`WH#HVGBQT^\*NN\ZIS$&,$=FCMT7A("7S0_Y2MT=6.G'[,HUG 362 MT<KK.J:.A<6)S.56JXC+%`I^E#M?U0"NK>P^-!8;4635%A+[-J3-$*9I<'AY 363 MO`\.+X\>')83>765><V4,HU<=6DVDAUF]GLV[Q@-=P1K5V/>%"=MN,I=NMKI 364 M2O<5(_];,M34E;:-(<A9+K1,1KGB^:BVM%#CI@($4AA9Q](Q<Y1&1R05KOV7 365 MY<E;+4RG(48;]BM]V&"-BMW'M>K0V(U](ESM4/A%Z"N!H26J$^F0Z$?1OXFT 366 M7*@BI"QM!"O6?D$:K7'1[\%AIG7IS3"7$$</RIXBBMZ+IQ_ZSP.W2FFG!*4T 367 M^BE!M`*DIQP@&HM1507*$#6QS^2+S"%:2W*F8\(-1@2L0W8)YG?6B%*%PD.T 368 MCI[9HHL,;PI]V'.V`1P\`V7((CVU;-\R@I4Y3.L*;2XO_#Y]FB99Z#ZAXR?0 369 M0BX5VTTZR'*"5F&0)94S9QG/M$0=W3B*KJI"5T%MB"F^D>W&"BQLU]6LT#(: 370 MDQ$5"K3="7<I9Q<51O%Z.@:N>3DDX]G#E+N`=X?$Q(WFLRR`,W>9G\*OA#A) 371 ME$4!I=HP91//N'/Z!>##>&1E-351B2?;3M:/V+61U:+.EBZ(]-DW[-IHB+[4 372 M&PWMT[^>(5?C;5?ESY,XY4ITZ;X],%91TRUH"]S[R?OTH^,6)SG#R,>Q(")) 373 MM0145-P,T",7X*[>7DD#`,!:D>(5LB+)P>@;?"-['^._.!ZT^\GOMXVUA4H6 374 MUI99EN5@^QE+]+JOY,'NKX%^K,$]QUB$19G#3M866F\(%ME:DGH($X:=G:CB 375 M$N0"<[0/V'V5<\8NZ7@VD6I\E-EVR#P/&6!%<WV\51!=7*C%::XM-:VI[@]9 376 M:A:_-HJL5%KBR7QAN`FR^T-?7T47;M&,AIC<!0PTIN;Y_2Z'(!5?I853%CMC 377 MUJO\KD)@*.;H-)L`**$G@W1@+$=Q>K\UA\`01C<T%4++7)N:O\&$2VHB)#2Q 378 ML*+*^#)DLD1')F5%<8S$X\648=C4R'ZJ3@V^!D86TKZ&*,,Q/4^4/T46'.+( 379 M7^U?7782P@$@+R>FJY?BP5>:\A=]YD#2<(AI3ASI!YW5*/M:$L,#XZ3IYJ^2 380 M=ZYA5SE8Z(SS[3I$X%-C9OLTP*+P&#&P'A'=KH]FU[8ST4_5`C#8-E?;2Z^D 381 M>5>MM,&2^4(NY@E',KSC5#^=PE4Q1!*6:O/PA#-?#O:!@#4J9AW'#0$0K!&M 382 M`,/0MMT-$5!?10Y.0T6K'9KP0TU9+.')%[L(T<"7Q@HOB;],O08&ZG0VN<ER 383 M^<SS]SL>K&A5`:>H7?O"'7>B<.F6@,'='NI7^GMSO%4FU1%]-P<R`]@WR$OG 384 M%]='0Z+R8$A43^^'&$8"HN9=#TR.._V^D<)X5_8WDJU1YW!!=RXOZ\B21E0- 385 M+!W7Z!D7!K82?D%+)VG$[A9I!4]"-7WZZ/I$W9<2[K1@JZQQLG60M)_+5"GT 386 MBX1?^]:=;OX*-:\/%)3345#C)R*I!KD:6C_<"H)/0!^AUJ]1$"!5!+^UY_J5 387 M7@,8[,>2XI4#T*4I%U1D51JO\)RKSJ?EW@\&3%?_L\R%+IP42(>.,1BUBQ?/ 388 M)82@P-:O@E!DSI?F09<N;@<35`G]HZKSHV^OQERX3Z_N`8MT$8/Z!>HB2I<N 389 M8E<+PBA$'T+T6FM(Y6]5!)3MZOJR#&0P?-IU$4.N62FH8S+<+&[[UC%V?X!) 390 M'O\U1A7@FAQ.W@7^]P&7A,(H;8469LH(V-<C01>D)$!5<UD7`5R<ZY%%C*6F 391 M;](=DHM+^1T^8P+=QUE;MB$[DP?^\M)#P,6-#5\;9[JU>XKD=H_H^C[8MW<[ 392 MOFD=U^.+UYI'7+`#98V;FC9K?[F+NAQHUBQ40V"[*O^YL!)BXA66PA6"<#1= 393 MU!71)P8W*5$9SN.BZM8.*MM-<L3U#/;SS7TD.Q,[P&3K^N&X>C00-96/7E)6 394 M_2IN)#=TT<*R\$W48.M8K"(3&)7)ZHA]],HZ5OXWZLL0UWS5$+YJ7<FF5Z@M 395 M9.VD6E@F2URK714.,0I<6>[:"0'),Y,R*O&:(U#8\.U_9,.'JHPY/L9>M&C= 396 MCY#"E>L^6)<LR_JQ6PA5N$YK[."90%5_H4,X@V%H!HX21S]-0CDHPM@AT@2. 397 M@WPXVY2/9U!_9/TSV_\92SIZJR+`%&<(,%MC,62-2S*UH/(-*Q4LUH:DK;NJ 398 M5)0X^TC2^+%ID)][%X[#M3>TN.R9F31R;*]N$@O\NUWF2O.->,$^CVY#@&.K 399 M>WN)*>OZ:!\T'YV,>YF-MF'[5I2#)*>7''$A+H55#GK70])(:Q4WBK"58IU[ 400 MM#1.^M96K/^J$9*W8A*+D3;]`.I3/7UBG?)13[0>Q;B420K<7G>I^G=?WB3J 401 M3[)=U`Z36`/RZ,5!/C@1%'YUP0R\Y34-^H_NEY!@#O&\@G/K*5SB]F$>,C)1 402 M#@>5]D'S^YMBE,7.4(JXW)SV+U.'.LL5'F])>^WFLG=%87,6A0#H2G/SQD*W 403 M3W[,\:EBOFB5T,W.:'-8W!HT[+T\'YVH.\OC>:XAF"L=S2356R(./1^)*[#& 404 ME"$H9^.L6K0[5G,)8H*KG2R25>WFV6+N[E.])76L[>/QY<S>849+27AN7X2T 405 MTI+G$:L=)V>2NLXEIWT.I,:KB7[R<$L90\^,"A8*)N&B>YP/G%`TV>H3D=\L 406 M7EU*UP>J387F\"UM92(K/):\1BG5S7-_)7_36`5/0,94>"6]R\2-D3S.W]>I 407 MYEL3["V'8S0-\PN<%MU;,N-;YI0:YF\4=SN/+U7E#J,4ECMS0-3`KG'P7+6D 408 M']-PF)BTK`&7`LF=<U&,Z,B):`^AP`H,>QH#*UA#).CG\05D!PM9#,2J4FP) 409 MZ;H0G3DBDO+#Q!\C?SK;GQ2L*3]^TA<\$NLJ+>6.PVZVM7+KVH8Z5\Y5<$O< 410 MU&IA.!0:D.^J1WH/R]Z^ZA>[5\R4-=*GT1M3HK".6Z1K[,Z005S["[KG8J4K 411 MSYGC-5GP@V%UIF+I#/3985\/@X--)8K<+%-VT?NVJS)M:J'=99[R5;EPWT0O 412 M'F.YI6HG)R3-PA@0=761&W$&^G`_$*JCF8[X:/NS-V5?P7/0@OVAW66:NA^1 413 MB_(DJ6N!'ZQF^='%1BO,Y*&*/R]UK\J.(C9%\XIR@%F^P2(PG8.69-U4=<;1 414 M_I^^R?@<>O:;M)N>YRL"P;O+U!V<A!G9N->\!6[0U98F=@]D/9I5,WWV.*BN 415 MLU#T.@G+J[*%JV@;^QCHGJ=Q@^7U)<F)K&^-[#XM,/NX[R_GJ`?>/9UY/J%8 416 M$L";U8)7O"+N8#68>1&\KJ:1_N[\>[7@E1[R=G%B6Z\:%T4V3FOC%3D+XHY" 417 MW1L225M#2M;+LQ;9&NFK"6AJ9"?3P&[ZD*85-_6?PQI_NA2Q\(4V>_(U24$W 418 M$T9,N/)AY7-UJ(!3AX@EIU7^56E79\(_LKU,VO(.,WJ?[F3'O9.%RIEE3S%W 419 M&NO#-A6LM*)4=[CEM:RI?@*GYZ9_;,V\-)!#T/DF<M^>F7H2JGHR<['>%?@" 420 M56XW&*QZ3"AY5@-(O2OF7[&+'E'G+GD]9*BO`+>DF5W+4U6/IJVH>J!<8F0' 421 M$SE-[)"IY'E=LED(.EH$T,&?KIJKD>U=5IRS)8B7NXV;'$MN<WV\*C?^XB&R 422 M!@P:*/'W!A/PE7;Z"T;FP%IV"G_LK-,J=9@"D3^FHXHN]<)W9=R):;O?JV=_ 423 M25_-F[ZB>5`W.<%0K)\ZV'TSA_SI]J\W)>M/]FS:YX/IMZ"DVJ!N?]C/"B![ 424 MDH1&P_:1W/A4,].<&7#1!6ED1_O7^I+%%S=;`W``3U.Z;OXM+(*7`-[@_)-] 425 M:SBKIK+QS_?EY:*VO\I]E[N`1C(!Y=`U-LIKA->:V'/,`=0C*W;=W1K934RP 426 M4!IGD;Y?WU,0K]?45>^XV:DRA^TJ=AS=A(I=O9MU`F72*)7?*3RMJW3J1&I* 427 M:'?@JB"GUO#NLH(530AH;U\2;/.P51V@R+H#O-X.5V.:?[L/!-DU@;BI0@=: 428 MFWD:E9>DJM]:YFETCI#UR=Z5%R(*C,@:^Q=4!!D;A&IPM_L55+DFYWW4H%UN 429 M0JM+;&U=Y.@!)'#7>DC43WM/53@LG0X#=\/4=L!=91#'(9*!YD#C`/*H3;?5 430 MDDK*_D+NISZ?2S+&BV/9U"J\N#6P*\5.)ED+$WU<%$-&(W7QT[#O59E+5>Q; 431 MABTLK2]K>&"7A2,=P:9N%J&:="/'H>SMY=-LVC_`?HUEKN,M!RNC)&&[,83M 432 M6H+3=VR,$6W7N(J3U=!(:H.A9$;%PY"-3P5`KM(;8!#9-H00PJL:$]&KZ;[T 433 M'.R.4>OD3HJ>%M^M+3O5E>:U)\W;CF%3'6/:'-RNCS?=B#*KVZ>1"A[2`U7Q 434 MX)O56/-Z[;OFP5-+^`XF%U?XTDWO)FA@)W@7'>:1:%[1J).,V^7?#&[:K,,E 435 M+^DM)#NMWNFX#)U@R2.N2VYH.>^3&V?0SF3?@(E\W*XQO1PXCVNQ'%)<^-KR 436 M>J+(Q5)1'K8XU_[B3ME0--'-:PWNNE@%8ZYF@\Y)TQ24.U'K60/IBXQ/[JNY 437 M+?DV!29/[&Q#?G6P`5?58^0M)W88N@'L;<"4T=DV;`/B^5P=*'KS&+&R!@SU 438 MMC.1F\M7B3O3Q]ZF+#IAQC+=UN:B#1`G7OF`O%W%;-Q$C&EZKLR\-<+;[Z=2 439 ME-#E-%:^VC^>[G6=RB<O+_,VIL0'N`=ZF*:VE/^(?[[;$N,"[OWP-BH'2H4Q 440 M&D]<5-`3R=H#+O%DWV2\JD$=A\L:]352$#3)Z\7M;8\BY@8&GH5S/#!95?_J 441 M;CE)5B.OYJ,]B[OI:CW+[]J^<'5=5;UZ'!^G*DD%K>GN^PKL(R+?*R`HBRZ! 442 M0RAO5[3J?06\4@3S@L8W+'Y!<KTCI[*MG+"B/A!O0Z(76Y-FIAH%"A?[-6>- 443 M\]A_J/J5D/9@=W#S>N9P'.7AC"FRZA0X/@$.@GF<#TA^<)R<`%[#[(TT%U`> 444 MUH8A4NZ^O&C5N<\6LC<`NW8![&4W8(T2I9#V@"&$&A=P_L1GPIR80YS>!1"W 445 M4>9,+T],CG>+2_6"6MR1JJBY-2V"/>5*$^VM%\):&\6[V66TSI%?BRG21X1W 446 MLRWCU:$M\?RTM]UOZ;HU-EC86/3ZI'$>B.%'AI`QTF;2`3QYL=>HV6WMB[?\ 447 MQ=V-=`@"GUS+3KG4T1CXN'3N*TG-[4-5H!+3FD<*&=7M<BJV6ETFYE;;.,&O 448 MS$O96>WB%!8AC*6TDXOIV]7+BFJR!UV5PP:="+W3&(_A3A17<:_$'(#I/04L 449 MD]C4-CH9DZ$KBSJ1SU#A]@E(ASKL"F5%/.!$W)`*B5EZNN\HQKBO8\)4K 450 MBCH+,SJTC@TY`[+4]>%(02YQLT=X(01-HF\?I])-%%T1UTY<G)RD5>=8^T/Q 451 M@OP!W)E6"Q&@,NO'EG-H1$J&L`FY.0\'`%,P9HK('$")VL-6.""IT!4[U6%^ 452 M6ZU%D`,7AWCLF+7(J"-4Z#1+,"=W]6*DATFSNMFQ=A.LBA=GB(=X,\H0J!%2 453 M.VO+1W25I7DIRYALEKFJ\$&6.:3OL,J1=Y,.*1>&=*?*E64V"48Z"LF!0DPH 454 M;PRE1$A454W(+83^:F9S/Y;$&'1G3_&>LF56O;7DQ+RV(<AAY,Z<1,BEWS7+ 455 MT=)6=C'!E)^A5$4LW+[D6$?"JYM9Q)]P/\%]AN+JR!AXEAY3S>S$O<&5Q1-0 456 MGHV)6>50<"[Z8'9-\*C,;(\5/!14.O3R].3,LEFK4IRAT"T&O@'@Z8VY,LM> 457 M>000E"[[$-.6%.(J)F40WK7PP@*@Y/C540RJK6QFSH?N5Y+:<+F=I2RB!3B] 458 MV^_GOER@*P6&IU_=8I0F,*-DI:A>336.G:AH;2'_]PMY1T7P+CM7AO]*1J@` 459 M7G7J%5=1(N7RWBK5@JOYY+:VUD;!%<KWTL)BX!KG+#&:_#BYF)81<3J$W$ZG 460 M9AL5CSOYA%E8E!M@Q6SE0;5K).0;J[O0[0N>=:XR*<%530'<6N-<+2[P1G9I 461 MV:9L`4:O5@_JJLI=F5S*=H1%04W*5%0BNZZM++B(8N.V,-]?0:FK>H3'I)?@ 462 M8'^>&=ZR95TK#B@Q`57H3CN%>=];S",K+<7B7::4)=6\Q'!U.MA5^G*B#`K= 463 MM1-)]XS6)I^")\\^P3\B=.&X.-I22%>$[1:58:QX-)@^K#A`![6V,.:30K12 464 M0N@RQBT!!W3SOJ7=WS6YY&'X;2$",U*D1$A2(J"JA86EF2(E;+\'='KN1Z=: 465 MVT[@>'7&5]&BMKRXL&-SXZ(7"K:Y:=N1BX@HA1V^[3H'^D(WS\,4NNFT(P_H 466 MEL%=EO3JH?5N^MRJRYQ</#^WM3%,GL.)ZIU%0)`C56E,=[5,H'[6=6D>"@., 467 M%?$]F_16"27@>'0N\>IH7LZ"AUM-;2W`/AW8H8`G!Z5#I:@0[RX;8L`0[6@Q 468 M[=P%#P;$!,(8W"77NL=I20:8*/R9:&H73=<1@"*)U1".VY4RJ<XM2JAO5NYQ 469 M\1K5:]E]`EHX7\0SNRE$2:(#)=FP@6WQU-S`8A%'ZDEEH@3TBZ#NT@V0?L/W 470 M!K8Y"/NBE-[JJ1W>-T[4M&"Y7400/X+2^U*6BOJB&C=5?U#CH!3A4A8]L(4' 471 MBVP9M;#KZKQL"N?'.L23-9_N@SL-R]W`HHA5?E3=P-HR6\'9^0SN]IL49W!7 472 M>AI.E+J[K6>D;;,3U<".O(OB),GL:`GPYN7%2=DYNUJV%-A0),2L*?>)3NN/ 473 M^X;)HNXV+BCR$_=6O+U7,J#C[<_JAH)-/,>,<@WLL!HRGMMXJMN/<]EPF&-B 474 M3^P0$T$T1S5V==N:.J>-E7,SSNOV39,0++&+_JS:R2Y;$H`6\Z1M-Q,6HWDY 475 M49SXNT^>Y)Y5'$$O)Q!,P6(6"!-4A0,>X#IV4.W&\G1L[#F2J_6H2DMX&ZOX 476 M;F\F8,:Z!.56P%#2DMBAEI4*=B]I[<393[H$WZCCL7Z.()8V*%MDQ;EDY\#: 477 M44+Y$KP2S0WNAZGTS#@CRJ.(YQ`*<W,R8*J>VHT:ZEI!3S0YN-&CE&5,J0U* 478 M-,QW`^*@7$Z$X)G/3I98B]!S-QA"<[2!5G.IJ!XRZH96LIG37?*&]^^DY02& 479 MBS#]5#9@<\!$*=S)0H':M9P`KY=P#L^*!L10:[&^X7KI-QL/TV5]]$7-@6PV 480 M(*JB5SK6>T/F(()S&\3)/Z`]F.U!1157`3=VM$='B@RWI'851O$@H,"O7W`. 481 M]+1EDAU6P"YUDN4Z6"(H^I-JUOGH3-,:(J$L-F$*[0N&2\B_M3T<1XXK=`)/ 482 MQUF=8-(ZTLE%[*-)(;>+I49FGVCU+S`7)7E!4>?(JG-'.+_/)1/L*D.!*$R@ 483 MV0'+'-6?@')R[.!XKH[1[3>\#.!$&-'.M8:YPQ(_H(9%N;>I.:RDFIS:FJN" 484 M@_T8#*L_)9'$3.$5&L5U]1G,)VF5I0RD$H75J8+U<`%+RV.WT9@;_"Q9*LL7 485 M_3\D>Y_)T3A51C#%`7-6*HSFXM7G@66(Y38QF#-$DDEZ%6D.9OA4A?:364[G 486 M[-.&EN4V%#_-3L*%"T(%XQS9+18/*[MX#9[46C*4^USS63$9-_^(D>]\DG:T 487 MH:""6\+0S0UN)1\RR=.Q$:Z[G6?M6F7:,!W262&R-.GU`:JD8G'J,H^$->>^ 488 M;%@2PB]Y6Z.*-$TLGNE*+:JZ)5+%$JFB`;CE#:;'>'*7BZ6AR>;(ST46)*I< 489 M@I_>,11EBV[,UIMWJJM9#J\<#F]5QTCM3I_KV:5K4BNE:/FKI)]-\[8",Q=^ 490 M!A?$3<[!3=D0H2V-!F]E<*G*LUYUJTYII925P[I54T'=>HA2^]%*%<"R,O-X 491 MQ2.!:3J()&3.D4D"1$8FR35$)*'%1X%&_D83#'6A):_A)I160"Q;A90PX#-$ 492 MN@.>G:ALS@:(J%&I1I<D-.8R.!OB`5'B,40AV:4-X@?@5%#3XD'V%(T:&`JK 493 M=J,2IP%U^(S7`>(%CPW2%091GI2\C",C6?U>CJM1;+0L9,:<PJ(<"1@/25<U 494 M1.S0=D&9!1>I`KKE[T%1:(U#(8G>)*P2N2J[@%4T/PX5=V^DW9@3(9@`K!ZT 495 MDT^H]4*)DX:3M?8C3WU*7#7OI&#`9:NKTDA=]0PQ/RAGG;'B[%`;I(JA&%R> 496 M34'M.Q/I0"%A7R33#Y4W="?V_!@,@$>!PSHKN`)5'`1,JFK<6\]L,6B;:[CO 497 M/"&FV$6*<TVY9;OO%,#814$8F:KW72LFLR":5`_38V"3/M+9I`;B(D7Z(*N$ 498 M2],J'16%6)6J1Y-)JG2@0!'5X`PHODN)%??HF\B2@6[<LKIG;$NYI6R7AT18 499 M#Y#RJ+0%=E.$8,E9$"U%6`%*H3E@6>>L2YE?/9DEAT0)9WYAY*?@FUF7%ZG0 500 M'\C+2(SQN)ZJ1T$!F]0E3.4LKF+E@UE<8OE.I]_LE]^I7Y&U'B&E&"-=YT.4 501 MXE4"*J)G;)B:G#5JZ]ZCKH*X.(55+JT29CHV'T#"/40,[H*/+'VD-3V;L*%8 502 MQDK!'^';:E?G+?8D+R.`5Y8WK(ZE>D\#2E`N`67P`=1.AP]`FD1@IOH&<AOK 503 M&_PY5-^P&66!VR5+%8Z539HMG(#3.,L9\5P,"*:P:#$,G,RW:=[;;*N(`])F 504 MT=2L@KJ&C6B>^YYMLCE0\B!2:*H[Q'SG[?(8S_=I?[6[VEBINT4$ES6K$`UN 505 MD&C>UJU-%^A+E&$E9H443_"7S37*?9:_+QW5%FY"O;KL(DC>=Y?#3=[J,M!8 506 M62W>*#+G0J0&VHI@R\/H14JIU^&:3?4WD!#08.Y9P1.6CN^;V^7")'P%!8XA 507 M%<&3:C&[NG["8Z;B%ZE)T(1J-2T?@<\EDNI<=6CH9=4F!16JPJH=1R;5#[MV 508 MOP[C/I_JCE58A;++XF\V':N`4)(NEEFE69@E4>GT<LR*$!CBA/@N)&@.R\)3 509 M6":9/;F5"Y4,\)3G352S72@`AR8[)U8,<E&OTBDU.V6,LJJ9%\L),K2R2Q9X 510 M(L[4QD"*N[FY\ZMR/U-^DL930UX<!#U+)R"[N,3P8K%HC8086ZJ"@9Q1MW!Q 511 M-H]D0:M$S&;-.`7KPD'Z.40[U4"(K!K@(`<:H:E#IR>9E'6?4$+*(`.&-B$@ 512 MA*N00(C6-B*7%?873$T=Y%U@&B[>10WR+A@#1"0DV=/UD3Q`BZ2RYO#!8,YX 513 M4)8YB`U#\&?VHT.Z.1%./(NLWA8%1:(G"@9$K&0=*9"C</PN/*1V;7JK2.F3 514 MR&/2*ESP]H>U3PS35F>6>A:)HNY3'YW9D2HH/48_^?*@V;/U3X7Q[9?'HU4@ 515 MH($&_VHEE-/$'RU7J,[6DOY)DH7@1A,%E>2N+)(PB?]EI,,?Z\?:+)/Y+_[8 516 M"IDWXC<OWBF"">Y)^UKEH!PPUF\64`GFL#<?ZMM:<M>6JP/_]FNP;'I1C[T9 517 M9LK<*U;*<J4)V.51J:<Y0?U4*-"79'%E+Q=7]W(1_$^5+ZIQ"JEC7(VB?I6I 518 M4X*EISL:)L:3LZ^"OBHWW_=G%H5_EA:=KG\WM3^3(W;MU#/WBHJZ9;=5^S@4 519 MBIX]C(+CI=AC$`@:\4S2TQD2L\O:D4'U(X.*Y$SG??P4#=BK>44$-+O@WDFR 520 M=1GPM*AWFQ_&$(LNF\.Z<X[FI(."S)H3]CG%-)!R53HH"%(U89<;V-7KN<.0 521 M+1JPDV%IJ2>(N,?IAY?3H51H!H5NPF*HR6C5>F;N9P3%#EM:IY+Z]=[@V>.G 522 M4+:N4D8[,7,G,/=DM0(P/KRQ=:90O)JF&+*K-?5R%H<8YH@B2SLN&9LQ$M=S 523 M*!@F:+&(E4RR@ATZ'DW:>602]8#?+@(9F=@*?^F).='[.+TI+WHR#`L)Q/0T 524 M8_`7W;[FU#@G["]&O62G7Q]KA;BFLE-42AX-M;B:R_>0O%H4$AKU7C&6WG)U 525 M1A""JHZTEJ0C@OO04AQR*C0%0[2W]G*[5>B'=46)"-LB3%&O)^+S+I?,AW4E 526 M?T(KB7;1=[T(3(-$-E6(U(/3@&@$QG41EK9(V+MPWUM$,\7V5#(B7"TRG!AD 527 M/,G_"[JTD`172LD48"&,1!<BMQLL%:N>E1S8,T-.B*!I:>Y3>]@13`JS&S?[ 528 MRZ3ZV6R20],%RX482,M*`3[I41$U&:[QSK1:LHV%R0_E.BP32/AVF8@7>YQ^ 529 MN`>I&.<T-*8BTZ?LA>>S558$1R7-4R6>JFP0Z?/F..3&##'.?GHY`^M6\EG# 530 M%9FJ\@&YNTA4A.F*<%!M"+96J$1@?KH_38ZIT+;V5[&F]9)U+N_A8!#".A%3 531 MMJ#:K<T7`5&89"K%VN$>S&."F+6%([?^E6C2U(,J3H`L<V8^#HA+L$W4U6P? 532 M"[E/E&<[$7M:C4+2/?-10W+\'-D:T8^0<7D`.5/SZLEH,C=&318Y2(,^B<C] 533 MGIE76E5\%'*S-/A!3B#7<5PF:O#3*ULC\A8Y^N%$ETRKW=>A-5K*`L701!2K 534 MPYFA:+)S5<LOF_U*1M.0Y2$N7S%+^0HJ*6^WS`,)R-SGUB,8$EV=[6I0($FZ 535 MHPCS>9D^2M]6V$,LUJPL8U_.<V1:3(/54+0G+KWE55L+C:#+P3DBNKWRR6&> 536 M/%JJ$^).#PJ-H)F<20KI$(F10^\A/1`P@=Q;BYS$;'_3G&P<4KU0R@@JDXQT 537 MAN;1#QA(:AP=\YBW$H"Y4#T=B(.+2IU6M")C+_ML7Z0N:-WVU'%2C5L)]6%2 538 M3]VL"%]50>ZM%8`<CF2E"=KW`-VI\[[72!2EIRI!3F8.JFK7%$^4_G95L<9C 539 M#?=HK1OD])R/C>N+'$@>`N[3<F4(Z(V3D')P#MH]FUB488(\9!YQIL?5[-"F 540 M^O68[YT:'6*6';Y&E9$KB)3=@YW,>9?\+.)EL"-B"+=NB!7D8"=2\<QZG_!N 541 MU!#3[C8-KD[F3B69816*E'+Q;&=BJ"TC"_E[83XL1XL'[O$O[F[%$M66K9R5 542 M6R:3B=U:!^I7N[8+L.UXJNB%I+A/2R`;C>1EZ37[\>*92X.=E45\)1-A%?=I 543 M(7NE9T;;60=4\AGK`).:2+!O@FDB`<#'<*<&IQP5-50&65K4+$>+I218D3N[ 544 MY-Y+XS12!.JA$M!+LXA`L-$81=Z[LIXL=S$)P"<Q/QX]K:(^@T'N&_"B:J&? 545 MZ70QQ"#HS:%WOU7FW3TWX)]#[AW_-[Z3>/,2Z/.-##S][W>2\%X]Z.MY>*\> 546 M]/54O%</^B3H9_%_YV</^D)8D+(ME%!5WO82?):6QQ^7ZR??Z;?*S%N?)^7- 547 M>TQ6^SPI;_A3X4^M3W-^?B@\;_WJR+SUW=2\KP7G??K?][+SOA:?][/_WI*@ 548 MMUYR\UZ]T+]]5%+>C\O[<?EK864_%J'T:7+=M^.-OI>M]T-?_5G.W@]]]6>9 549 M>S_TU?&KOKK]JJ_NO^JKQZ_ZZOG6K_YY4M#C"8_[\/9HJ^\E_WWMSR]-`?RT 550 MO#D%</Q&-^!;;K37*8'GA?OJC?/]1Y4W/:J^Z5&?!4Y^]<+^_J,^"Y;\ZH7Z 551 M_4=](:7PRP%6WW\4PZN^_ZC\ID=](<'Q"X]Z0];;ZPM_?N,/+_#XQ@7N(_K# 552 MYT?S6T[83PY3GIM(M<O^/3[Y6_GD;_63O\4G?VN?_*U_\K?QZMB]OP3+D.>W 553 MB9#D_[X=?3ZN?_7JJU54!.)>!SO.SY'>/,_]_J#Q!F#YC?S)5P_Z>@KEJP=] 554 M/8M2+\H/H\]7+X'1Y_)W^DK\Y'J)F#P8\Q5D-,1DX77LX,^BF%_AT?@E.93K 555 M'F3X3U+2']=W2U1^TZ/*#Q6,Q_GU/Q^^!TE?ZL4G[\L_>SSZ];C-SS')S_#) 556 M-^,]O_O5WXSZ?$L&]*_XZOA57]U^U5?W7_75XS?!A-^*._W:GP_?PX0_KT?* 557 MF'QS;_JV.^"'KOC7*:C??F5?7=%O?W3YH4?7'WIT_-"CVXG6_%Z?<6*M?^#1 558 MXX<>/7_HT>M''@W`^0./SC_TZ/)#C_Z!T.'7=UW[_I\/WP.F]\G'KX]M?0E5 559 MS9_\K7SRM_K)WWY%;.NKO[WJ;%^]/M\*<?WI;__V+_Y+3G_QW]8O#G`%D6-J 560 MS]44)03-&0T$L.>JDY+%AJ@:$07)K[#"EOMSY49T2`=/O!<5YJ9=FN4#ZVJK 561 M;,D.H@(-2[,ILF!+EI]5LD"HJP-+"S8"T"DPL">7#HUM:5/,9K*A0L3F7%8= 562 MCO6BXH+<YCK:E/!LR;WJ`I_5=,_U,NFG1)RT&WC!:W^/%%H3GHM%9TA4J#). 563 MF:6"3N@$'LK.^K!MRJ&'R=ENE"5>L]827(59&U64DZ#M?3"EB3&(9M]JPSH= 564 MU"JEE_@^)G!4^II7IT:4D#?>_ME,8:D/=(T2L9GD,PH/!T,C^NJ9S&:8+ 565 M%^B(-^X6H-@T#A.:R5V7%%8&`DKNL%<*(A"M.&NCG#"OUM;):"5-P18"-%P\ 566 M+E&3.2WV"BZA-$.[28OVXSU8S7=?]QR\[$Q/AK$6&3LD:7#CU4<W85&T"2_" 567 M,MY<+O`K%6D6U2)-2PSG5.+GE)_'+IJ$K*&JU!M,]+%=B@B"DN)V\WUH`DW" 568 M#TQ:ZM&>[>_/77[Q)K\DY]R8HR\?`<9H+*W!8EA3^V@>S>T(*>Z4'[*"I.(H 569 M3S82R&T<NQ1'#-(H@"PXY5+`"/YP@<`&T!*LCQ-HN&_B85WM"I&<'V=+QT@@ 570 MQCVK]:F+\C,07B%Z8:*/HM2T4TX"\X6X.!B4+.+BT]`F'U>YHKUF'<ZK*&<= 571 M1MZ(K`0:.=G/08$P-1QUOY%<Y,/CD:LRKO%5UN+Z,`I%JH7T02YLP9,$6PX2 572 MKVL3+8XN`LN^>;0VKA9PV/68&7^P=9?7)I:,QR!E#:8BD;\XK:VUV)F;?";E 573 MTO\3P8;X%%\,VKHWOF6!N(VQ2QMU.),+?S!0:)*"O:!S<4`SE'9CR2*%TBR; 574 M!X@P3#U'V-2]95=:QG1UN[K#2_WX?^:G9D>\-F0=`,4T!6=4\I*C%"#8LP3= 575 M[?!R'-D&S<LLVYAV_H0'O/-PIF]U6J0XJ74Q#_@8?[8GJVHC32[['VE5@%W_ 576 MPBW/53^5@,K$(1/<H85@'MH[`%H)+OMIBC:N3O`J3,;I?%TOU%KC5.$BGU[J 577 M5_@7S7K<\,JR`6@>BQ*.M4K5NC]-,3B0=BAZ%MVBVA13:<FUUS)="C"DJHV2 578 M[!S`]"QN^3NDP7+&:USWURA5Z1462-,)*NK1UU:EZ3RLX4#J(6,NDAM)233- 579 M<1PWO!GV@X*59%-YLW,7*8MER1#O<4Z+:TV[L^_G4-8#HV?'(2LEF#.BF,W4 580 MJCP_Z9'R,-N:S/`"R>?CD8[1:AQ[?5GV@%RT*.C#[CQB>,$_X\3MI)?@BGVX 581 M1U-=:]2KV.<8"52J;%FY9,\\1.V"UU_"J!NO>%:SV>:I:\=N0I9XTTFMQ#&F 582 M,\(6W)3LEI5##3YE5VU3M(]5&<,Y7HF,*#K;R>5XY)-8R/M9E.R2SYH?7F7F 583 M+V7E4)-M*E]W\G6?17+&*0@EQWXF=,-;2:3L-,@%0FJT#L5RD]>FO#M+HMT) 584 MR*JN5<ILO16%_@J&D8A/;6R563<2*$(\)-EA$HA-ZNH!P%JG,A9O+?W9]VEA 585 M1I+XQ"Q1(Z;E_^!)HTBU['B=*N-K(J^QNK7_G7::-]:E)>G_/B+N#L4US+O. 586 M?!,$PH9RN_;CE-M5`0,E+I/R3B$[UI;AN&+V9V&`ZQ`&$Z_1F1-W>Q/YW$OR 587 M08=ZPS"&)]7+RW5]H8)G6%V&8U!D2E1YNCDQT(=U"O[T3-B!8]FD<]U"4`I( 588 MJK61=%U*0G)7I:GA,PTV3)^<TY:`#C-5Q"`H5R@[3#*]FFQ4K)J=MD&5NLM9 589 MTI#('PNG?DH2++*&DZ2GZ9.[%)$^21/>Y4@=ER2DJPS3K,%*$O\H6U<6W:8T 590 M2@T\L(N_0;M'?.&%DI53V*83S_VXL&<Y,K`PD1HL+2T]=:4?2:2S2_3;[%,' 591 M^OV046>N65J16MJZLR@E%K$CM;C6-C.A6;$#!ELO5HOD>@(&>Y7%LE2O95CQ 592 MK_O5#B:SY8.[IL5EN\EI1RQ2EK1ELMNT2>>B(2X_^W0HE.G@=7P5':FD6-NG 593 MC'!7`'R;:PU[+/F9E"JR]4-MXD^F)U6FF6I1?/0&Y299MS3-L=Y54=S)3-'9 594 M1<3KX8C!M&&+2I/4.U"/9;!%G^DAO)$!:M2^?)PY`?B*VK1?I.FLB>+^@&[' 595 MXDV"T9>OB!<CN+G).3$9:Z&NT9)S_PKY=)."6_VT>N@:VQCV,MG51B6LC:Q. 596 M4F<4\!8=!EC"X%^6[3Z<:-<$C\1F@UY@+/G@VHB.)1XH*Y!8?7%6H6)1)4U[ 597 MO!NLDT(K23_REZV0+6$/NF$W8(CZ:>N-JA5M"6)-A^8PN]8%#,;+IH&745S` 598 MX/LG'[HJQV`6L&&R'RG!HQ^4):!=%*MS%["!8BJ-?X8[,WG?@Y1J]HZ-E%NY 599 ME1AH]>3PP8F.GY1*8#3H8QGY32IX[M3'@F*M>##^=-:P<J0BJ<B&#M^G22A" 600 M(WU0M(M%_S,/0ZHQ1I?5IGR%+8J5POU&F6V>%KI%51AT%*8[.%F4,I%=H(XT 601 MMM@.!D+\FIQ/F!5!"P-V>HZP@%5G2!R78+F75*N-V3:Z>J$!D<X-%VTWJ))C 602 M*$7]<9>Y[5KBKI$#D64G)ELHD'6YLC+!8.75Q*#<94ZZ?_AD,A\U8*-FHW-: 603 MN3`2+!/[W%V"\W#C.%F5I14)B444,:`"%OF0P$%>;#8LZ5.1T(@*<8K$\>F\ 604 MR./IV&RV9@9EE3TK/4B.4N1A09=I>?^`H5YQ>5/;^-";&)3,;I<RMJ$>4B:" 605 M_#5[,1U<!36:&)2TZ<E*2"W*RVGP#E+-VK>19+NWR;"+W>Q>0?9B#YAV[ 606 M96#IFG*>VS!AURV5K;CB-K6S,`5<-F&2F6E@LK-K`CV0]DT4JE].@J9F[GAK 607 M,A<<#/"&3$M4,@B#;,IDGQ[>E-G2M]V1JY0M*0HP`G-$E`)B>=$S_D5&)=3M 608 M:S+6Y,NT,3@T<1%L;#`>H^X!4RTRX)F5,XZM\#@U+8_ESK'K'KQ(L2DYG`[* 609 MFS*?G5-\.7E05K<8EFFL(_W_G,J-4$PQ'!&=R4[==)ZV9"J*C;!'N\R7H)J3 610 MHW!_T>0RI\&6PBOHS25@MFNI`U6I"H9TI:]N5#8(0EBX0IA,NDQ+D.2B;L]) 611 M#,=685+.<!(8_4XI^Z_0"=%]0[)_-#+'35@2$!2X@*X3GFDU0B.RTATO<2/A 612 M>A[A?YJJ<5%XF[)@A.=C&$$*GD%9%$J[SZ'2H;QX!N4\RCV!*A07!`49MGZB 613 M<ICIAFIW!F,MR4[AF;K*\4(0=Z`DU<#=#/&^\;Y$+KP&;,4DS"M386O_QY(@ 614 MND@/4XZ3^JXQMWMG22/AW8HD#<96*UVMXP:]`&=!IPRKY;O,-?>]72UP@0*@ 615 M2PC75C$W?.(@T4QL-R<.O)^=>4ID?X_IE`B*E^KQUJ203I!+^>.2_D]=;RI[ 616 MR?Z:=*UV3`ZU`2<L@H.&98]-W+U":YCR&:)Q_*+A&&_Y9UI-$".C?K5N)W51 617 MX#D;*XZ,*+`FD=M2D<=FI>T1$R/"FM[=^,Z+=3*[:`F0E4E+)F1BT6(3(M.+ 618 M/C-IRI2.30GD0Y;\$YE:LA+L'N%\-LH1_;>B@K51]7*Z%Y2H[-P`SIJB'Z(H 619 M^`&U0J)_"9?D(U<9.1KTY["1'$LM$P5E/G"1;>M4!\FS@Z$/0A4W8K'A07XF 620 M%-*@2\6J*'6G7.0^78S!J-)EK8IY]P'>MT)-TNYR_AN*`2M'C&<M)A`5+,\\ 621 MR\_3)DM\%HI_9IXL*Q=;5&MWVZAV6JKC5?;##+61M97AX`<V/_(H(8K#!.QN 622 ME!G*K5([N33+;[0[IL5`I_<2WA2Z9.Z*OZO5;H^3BE3*=Q%>E_$$0$;%'1YT 623 M?QNN4XN1,@1BE:YA#&=MMB<9G=IJ)=@T3[9&E7<61N3,9Z-@M\NO2I$*C9X# 624 M,RU[#C!^QV$/PXF0SQ1X:(!?E``#T9TL`UFI1DI'L/L4IX],5,PPN%!ASG9P 625 M2HYFA8&HV\@QSWQKXW(%U>^[*IS-VEYRZG'*:KR%:MO._'Y,`['=%U"OVSWB 626 M4A(#Q_<UNO6ZBUGNG.[G[$!I^AG=U+2M(V$9=-NSQ\#1L.#`:,Z3KG8`QM=G 627 M5ZB!)"&9_FJ$?)%L!ND?-XOSW$`B__1@L&JC<S@YAPP':!906)QZ=C+K`ZUY 628 M`,(:GY)B"1&AY@D^_08VN*I3.=-))N?QQ,*$3K^/8S:`>;Q<-FMA][BO@ZMS 629 MNRH""_%D!,%@C,3*I+$6;\GAF+\SUD)H2V+*G\=:#(AQ+7@\8RWZI,6Q6%MW 630 M7:[F6O0&>-'E>K)5F8TUPCDP54)^%)\AZ-+'Z<AR8[*-6[)1A%VJG151-Q(V 631 M"S04";W5GG$W>^;N1^9Y3'/WE2]Q;E:D,-MNN3U7K@3DO\;5G$;?QWTMAMU& 632 MF/'W@,1WFK!%<)[$#.1+>T18'BO!KL?5D2^E/UF/VVNW35$K\AWIZ3Y/*D=K 633 M=A-L\$"I6;G_0&\550*$L#BAF2G5K`2+IP,^HB,5;21A<,J6K!2[XV(P7RS< 634 M[X@=X[_26;+8<&2<R/A:G%_:C[6/O4=X\1/P]`W850DJZ[\R^K2.NBC&-"S, 635 M'35.PA5TN:X&F&3&.N6`8GT6A,;4<4?ZM6Y'MEVY.^=*F-E:VA9W,\F&O<+5 636 MT2IK"KMPZJ*J@*610N;G<%ASG4]'Q,^0^%(L;4.?0/#BD3=.(-9S1S3??23[ 637 M6>9QW.#&#!L"%P5MU:7A;]5IIKLGL`L);@[K<N7IRAMXJ3%+U36A)KODMM4$ 638 M5T9+\BI*3:E^A6^Z<IJ/;-]6B%SD#7H\4(I+NSFZD*#HR"=W@V'*V_9MS2C3 639 MF9Q@"M>+)@?)TX\$O:?:M<%F7O9KTP.E:L/4&^[U)2NCI&&.(@P\44)DT-1( 640 M:95C`8Y!?9<#FV@.F"35(G=<N=^$]/>=J:4M)5B`[VH<2U6LS1EGJ/2D(K8P 641 MSX:W0,6^B$+=)>.2&V'0<*[+XI*4J[U2#6J:.B-`FFP_:LW>0Y'SQZ\(F*;N 642 MBL8.3.;7%];[%48T=-8EU:##HY?__#0/H&%_*M_OI:3=B\)<7<*J"QB,@5F_ 643 MBM:E##50GAR]:.SZO2N%LUQX49S^:Q<-HAD2/:J32DD!0.=%O^^;`@\:C==& 644 M48X+W;*:'=>6/#C9*B'G3;$#[71?HYV,4HI/6<RPY54QZPP+*`8SD;RQ:[4E 645 MNZXQ[$`-&$=VJ$*+"[M=:6O6>,F5K"@AC&Z/86^!1A,S`IIV$EPB#=M)3MC4 646 MW)SN5TYZ5=MWHQQ(_*HJ8JL[U@"+N^L)+6"Q$$D!@$4E#,;GZ6XOP"K./HN> 647 MZQ=9)=0N#Q*NPP!JJO@][*3:.ADNCIMG3H?B26'\<=P%&M71RJU:TUZX=;QX 648 MX6:QAVYR8FI#ZESZII:32ZK>"^CB;O*=[AFE>`V*5W>[R+J*L:<Q)X'VR-=C 649 M-E!-2^BLCA?;&2B3&2>V_+[9\!;Z?=/3="B363&T0#J<LBO_X*AT:3E!;2Z[ 650 M/I:S_?X4&2HE&N+BQ:D<,L&+"X6L<FIQD<\`>0DJ9$SIZ\HLL$L"+94PEL`; 651 M'<1T"1$NDTK[W8\I4(=6`PC./@-SP_J;+--9XHC@V9>5)7])KI6[^[:6Y#K@ 652 MY#P.S=>RVU+;,$TS\\*R0D_?4&0?+-9V@9MT2(J+CGA6NLAR$P/4D@\\(ZQ@ 653 M&$X:5E3%,C-OUXAMT9H1TZ8:DQM`S+9.C@M&,/9>&GG8%Q?^V3)2:9FF^'09 654 MS]H!3J2Y.9%9KL%:YYV,4HUYY*6"D:X1&S,S',KLW%^9YZ9I8X*E?`X@P5J' 655 MEX!(;Q-@NP>ZP'I`TZ8.SWQ.SLL\@2XPR='2$.%[*&R%I@3,[^8,'6ZG3&7. 656 M#NQCSI53F<NI>-46X&S9,6TB/Z2;H[#41^-CDU*>'QC8POB#D8X=03^V<5BX 657 M5?O&[89#Q6X&;D9^!$,!=G$I*7C^R8Y+-4_5.QB-5H<:]*>S#&2RISLX9@IJ 658 MU*15B@I=4D.A21,,ZNS9Y)KW*IJ4ELQR!1_L-$5&&!H]%Q+"FJ-<<E^*[..L 659 M^R3VY6,U"<.:H$5>]JRIYF.F`D:"`_M&37+1E<>6L%FQ#P&F])XUX<AJKG;1 660 M'4G*;,0EDD(W]PKOFQTF<0_8,([L,$^9$+`E!_"YSHAIOR/I+`&9&*M"U\LQ 661 M4BE%<_3*R$VZX9*(XC4@QUE*,\CJXEA<6>;PR*4RAWM60Z9]82RY$<"!BKT< 662 M#$MDMK3@Q_?,VC34RN%DEX$NNH6A32`:%QHNC28;[Q(*M"TWI0P7,:I6.'*O 663 M3U<K73WTPYTG`85KU[H\9W*.O'RTSFP<[##6+(6B$)4Y<:]4Y$YIR-1U[9+V 664 MM+)6?`W&7UC`%3D]*:?6_G#SH#%>0O319Y!*71XRU>;4>!*ZS%,@E4=#\&(/ 665 M7&R`;DRT:LK8PPA<7%'6P7FG*2S.E_9+8:)H#.^]6,"B*:#@H6$H*"X5NEDM 666 M^P!L'2M*\/W1$:%,-=?\4`ZX"#)0WM0^"^1>:;H?J;]!'M5:](4#BX8+OLZ. 667 MDH5,16FXY),G.A1+,!B1'L\"=8HE"!FA`V)T9TQ-AN7*1$6MGLE%@MG"-J<J 668 M[3L[M.7#OC+))@4V&F!G!<$M+2JCF3;5S`R-EJL)"D\.:N6/%D,!KX+#5G36 669 MJBHU&UG2M?/00G/OCI=JCO,^O>(];H7/WG9P%?V,8-D@ATY9>K/+`7>78<V6 670 M.JW\+N*^BC]%?K'M+%<_W%#/RH!F.KL3?G9QK:E4@GF"XNDK?SVI!-T4!7J, 671 MW.S"%.EV+%;D<"="IY=\<*8_WMZ]/SEQ9?>;-1^KE'EWA)MZR[S>@W/N"_SR 672 MJ@]GK>-$`2DT!0=JFQXTP0L(LZ->E335M5%4N++]X'#6B1_:8?A((%9<G[#^ 673 M4D]9B=9@X[TQ+(.F)KFA&#AW^M\2<V'4!#_B4-2*?.<KU^V%W62K0>1%"$+` 674 M-68WX,)\C%:6,^CEO:H\#SG%*XZ4PC[DY(6F:I95=Z+4AC/3_(1LKZ>&C#"T 675 MD#B,V$OB_&B/2YY$[.*J8P>B*!09L<VD5S'[4:'(PU9,G(@_N9/L,41R9TA6 676 MG%9R>!Y619)`4UD\#8M$[A]@UC[;Z?>D(`:5KLZI)]J^GH6M4-A8M]8Z`$#7 677 MU[I'@S(!73EZP$;%X:'W`"FY,E^(U_%B<QR.2P*E"XA3KI:K*EX%IX8"I$BK 678 M5H!4ZV>/%VDIE"`W^=1A,'EI;@'D\N0@6,VE%7M-N[;@3*S.<#!!<@8R.]8# 679 MJ9!D1HZ"5B.<C/<3DD?KWV),17C(H'>ZFN$C>K#3Y$F30V&GI<&1:)Q-1>S1 680 MQLKT<SK^W6I+AZO8?H"ZR=7N50S;+CO58=!-8`6]@NUXLXW\R[.2=U3!.$4V 681 MMFKKI($^B*Q_:%:89%].S(*&8%VA[QK"T.E)8S.Y>)<A4UY\'WK*F_H4*F*D 682 M(FL<5I?G80M;5,<A8\8H<#6*P17F8ID5;'`5+GAU&*#[^%W]/B*O!E<GWX#P 683 M:E>0F\M;=:1*NV.K4I*A5=N_K?A5G1,GX"2'O:NKOKKF,/&'AG,]'8>ZK`$Y 684 MMNPB675@7:*IF,['&UW+.[IL`U=A7QJRIQN`9JQ@*W%$/@*8BE4KKHQ<S60I 685 M<*8BV<YC)O(+A0?1G(ZY!-A[F*(`1JL*6>/!2QRF-)5]5F5Y?+LS927KO.I4 686 MR79+1'->YEZ.CVX2!?*K(R`Y&IOT9`1-#`'6H+0B'ZW1.[V"H5!%NAH'%UX4 687 M*"'U#G@2@&1(N^N.):CM6-G1I)F8#-01(K*[8>^C`]LNX`LZE*!(_T`?NTK= 688 M025#@E;@L6QAUWWO:4\L)]F3Q"`^>W6[N)S%@!:1>(K\4<ZU;-4[K=W!K>E8 689 ME9GLO;FAH5=]"'X2&MNO0JMGUU<4&356$QPKK6'`S]P0!A)P4JLER@+C:@." 690 M#4>#A*:B9G&7KNS*5IXDWQFQI-YA`!4*%ST6S4M8"G*Z&=(4C_JC.G$E9+#/ 691 M/NOL4I\=]S`U'8.EJOA7^[.E4+I3E$-@CI1''!<"QQ.(Q]$P,=J@<ZAR"-+I 692 M&_&`99)"F\>LMZ@[98:4DVOX^Q1CM&-WR,%9.?A,O[K$.[L"3&__TI/3WO%M 693 MFSK'RD:$$*W,)!H6'/`9'%5.`N@ZA:W9;'Q?Q)BE$O.$-IGTSW7^)P5`I1R. 694 M0FUF7VGR]\P('PW(>#$)EF4G0>HOP^P$;&Y<V7H63U]:G#/F!YX\U':&?]PM 695 M.%?UA`Q[35&PM,;DM*L/#\@8C:S$*#+Z"<=:*U6ZG7IBWC>F'2=Z)6S`.1@? 696 M(PO.<"(>,]`X[J=#KCS',:YCV5OBD$8=2?1VY1"#'LK$3`5`94IZ%-A.!A!9 697 M5<HNV=4^'8--(EF,\L<)NMO']63X$\GW]87A+@`&$]:L-!7XMMY"HU=4K(W\ 698 MBRGN67L'#*2*(U0P7&?[6#+1P@6Y0?FD%Y@?(I8H_#^%PAPPB2%^GV<I.?(9 699 MYT-KJ'$^TEB6Z50@]6@K29-9Q1`T<XLTI/)>$CQOD13*%*^Q8#A^.`HQ>+B: 700 ME@"2`;_HR2DJK(4GHSTI,H2Q*%59GIG\-S>612$(M%"U:_"N2EQ,=MKR(Y`= 701 MAQ*@&"0LBD6@\6:I_0065U*7@#HH:?%H:Y\U*"(1V:O):JTA61AN)($`DJ([ 702 M)?"\2<73CM00=<=DT9C-L0@5.BPQJ4!3>WZD4H1U*ISO=>$J,^RU.6SJ";RU 703 MRN%290:2<:0?2UQW[7\]WGI2OA8'^4V=I(9-XGS"(-F1[./>1^Y?G;TY*U:: 704 MWDJB0A]3\06+?V\?N]PVL8YC&XG+9*F-]#0?D[YFC>$83\<L&%RI:F5-5J%2 705 MKJ^:R+G.>"NEW`_+/85[2-)(Y15<.:TC)_6PJ&#MK?8Q>-MIN@7G2]>I65.Z 706 MF62UWW)WC^.N+40^1S[-XXJB`5=J<0S%F_A3,4(U"E$I"F-'(IV)HJCWL@EN 707 MR,-@QYC0H&+H/^<2!FNU:8+?Q)^"ZRTZQXT?M(EL;<H=&/<RBI,F]K&LE,Z\ 708 M1ZYD1#<00\.5:S;U%S<=B6X;J36DCG!JZL77U1F=+9D@B-WC$!MT:+)^JT9/ 709 M@%HG3I'Y(X1:1*O<0K;5"V?TK4@\R%@>DT"Q_B#$`@$]*/%C,BZ<?9=WD/L; 710 MK'M8'1<%"AZ.DXF@J'!_;&E.H-\5?6*=WG$P"3I`TX"JDF'JXVAS6'S-JNK( 711 M!+>$L##CF62J#0-,I:C0`*MH(?*POU(1NGT,)T@"_K-,HU5,=W5.&1N9<_*5 712 M3:7`82,R!68GHE5U\&<IQHG,]*?]72$A@<MJV]WC0S\Y"-'%6^?-2RT.Z12+ 713 M:DM.EXFQ>GTZDL'EV99`UI/BAL4,LVJ0>[/N*)=FI,`-7E?=>F#RO"W.6\;\ 714 M"Z;)H?[QD!JO2EYQX:KRW_80RZM(031SJ]93]39R]>,2C!UY<^U"!V9NE;`^ 715 MJU!78I'TT;694E'A(RR$M;]7]6B>`D_1X_ESI1H,LBDP)YR41R/%G`!+XM"/ 716 M2B;O7D3.X8SU<Y"Z>%`YHED7S>%%"6TO9(KD]A'2QW`#R:5VW#21:B?=;K"Y 717 M%WG]"3NP>X$RH8)#+5/=^6K?4Q%R+\9:N+Q4Q:Q-545[4@I4D)__T1F:88GT 718 M/N5I=O[8P$$@O%JV"\YBSJA`Y=F<M;Z[*K,IPC"KU\PRUF8*T4!;(<C"WH^. 719 MP2W-0!W#HA@#,&;;=664%Z:<BU2Q+_7&6,[&5$X:['=%K"?G1%$+B<(V\Q*Y 720 M`K,))7(63\,P#5&:.7Y]Q9'=2-X8"K>;8KH(?3&.%G>LBEKF2<1YV,*&*,C< 721 MF[!^&%'00/;4F3S,=LS$T1:Z$2'.06]%-W1M'=E).E+J3AJE6E;!ZBQ'+G"8 722 MZ(AEL8]3[QVYQW:B5'8>9Z\BC<)3(+N-1$*=\-B^FZ<!&0XBD]S+DW.'S4(1 723 M:[3FZCX2:O`3S\G(8]$LRMDZ[@]4V[!OM7*GYCA+QZ31&-:R:B.A3*_>.B)9 724 MDB1@NC]@'0PT5E.'^<,BNQT#E294MK*E#.RQ^CVV<PB5C:DN<C4;>=,"(E4G 725 MO4P6(YE`>!7AA.%T+"#@4R]<AOVK"ASU$PZW&PSO#(;KL7SM#MC9G2OELWED 726 MF:DR/F^GO&%6<CCNXOJQ?&T\9<I8:\W>#Z,W,MS)*JI&9GW4>^XP(]I8VS"` 727 M/F"L*MX.0G4WCXV1A8QZ*6'G![:6<GX0*IN],$I]]T_3.2_-(=BN*=G:Z"IB 728 M"@?S(=>'?3R5^UCLKCQ42KDJW)GK@_UK(@67DU<ENK1D>D6IX:$^BJG8%<#> 729 M_=X[=J>\[/MOFC@ZL<+B)VFT8-VA&D>U?"*.SL[X(LL*/1F3M[^L'Y#"AG_> 730 M;U)1YSA8-/$5V":JQ&DTQGBGH5`[7!IDA*5$9D5YDB9ZS-9V/1--5/)_CI<> 731 MB+XP$P;-8/^\"GH0%)2!31]>8\K3&9=.@K?RACGC$JV+4R6FH[!/VW<R+UFR 732 MK[`HYU6':H#S$+2@1Q*<:0XC@*#638G2S%[`=V=>.IL5V"YXCWFQM$*524D\ 733 MA9I"-F8/V">CX4SL'QB6P?-7O>O5MC%4<6A5F-D[4$G,UH%"19`9\1+!U)ZL 734 MC\RN#;<16*2+`,?L:ER@&I_QZ#U),Z)VDI*F;`+R,SDZ(E6,*_R@M,PDTGH] 735 MXZ+2-2):C;&+VK-_O(KUQ$F-IO$:;I#@Q`,78TB*Y1CK&]3%XL1>4PAD)$&- 736 M6E?GQE^O*N^J"6:+;X:A\7/#]R=#F@=M86OHV?)"JX!_RNP5>+.U<>Z66$>1 737 MNQ_''"(\0ZK,9B,A$G<NJ=#[''V.?SQ?_A<KJ'=/_N\^Z!-/_B_\T*]X\N?@ 738 MQ^W5@[Y@G?KZA?AQ5U1^=>9+FE^[^^??QI,__ES^U%_VYM^_H-VK?V;-?W<Q