test_senc3d_some_enclosures.c (52422B)
1 /* Copyright (C) 2018-2020, 2023, 2024 |Méso|Star> (contact@meso-star.com) 2 * 3 * This program is free software: you can redistribute it and/or modify 4 * it under the terms of the GNU General Public License as published by 5 * the Free Software Foundation, either version 3 of the License, or 6 * (at your option) any later version. 7 * 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU General Public License for more details. 12 * 13 * You should have received a copy of the GNU General Public License 14 * along with this program. If not, see <http://www.gnu.org/licenses/>. */ 15 16 /* This test has been created using the sg3_geometry_dump_as_C_code feature 17 * of star-geometry. It uses output from test_sg3_some_enclosures. 18 * This test is similar to test_senc3d_many_enclosures that creates a huge 19 * geometry by program. */ 20 21 #include "senc3d.h" 22 #include "test_senc3d_utils.h" 23 24 #include <rsys/double3.h> 25 26 /* Dump of star-geometry 'some_enclosures'. */ 27 static const unsigned some_enclosures_vertices_count = 768; 28 static const double some_enclosures_vertices[2304] = 29 { 30 -19, -20, -0.5, 31 -19, -20, 0.5, 32 -19.691, -19.0489, -0.5, 33 -19.691, -19.0489, 0.5, 34 -20.809, -19.4122, -0.5, 35 -20.809, -19.4122, 0.5, 36 -20.809, -20.5878, -0.5, 37 -20.809, -20.5878, 0.5, 38 -19.691, -20.9511, -0.5, 39 -19.691, -20.9511, 0.5, 40 -20, -20, -0.5, 41 -20, -20, 0.5, 42 -18, -20, -1, 43 -18, -20, 1, 44 -19.382, -18.0979, -1, 45 -19.382, -18.0979, 1, 46 -21.618, -18.8244, -1, 47 -21.618, -18.8244, 1, 48 -21.618, -21.1756, -1, 49 -21.618, -21.1756, 1, 50 -19.382, -21.9021, -1, 51 -19.382, -21.9021, 1, 52 -20, -20, -1, 53 -20, -20, 1, 54 -17, -20, -1.5, 55 -17, -20, 1.5, 56 -19.0729, -17.1468, -1.5, 57 -19.0729, -17.1468, 1.5, 58 -22.4271, -18.2366, -1.5, 59 -22.4271, -18.2366, 1.5, 60 -22.4271, -21.7634, -1.5, 61 -22.4271, -21.7634, 1.5, 62 -19.0729, -22.8532, -1.5, 63 -19.0729, -22.8532, 1.5, 64 -20, -20, -1.5, 65 -20, -20, 1.5, 66 -16, -20, -2, 67 -16, -20, 2, 68 -18.7639, -16.1958, -2, 69 -18.7639, -16.1958, 2, 70 -23.2361, -17.6489, -2, 71 -23.2361, -17.6489, 2, 72 -23.2361, -22.3511, -2, 73 -23.2361, -22.3511, 2, 74 -18.7639, -23.8042, -2, 75 -18.7639, -23.8042, 2, 76 -20, -20, -2, 77 -20, -20, 2, 78 -19, -10, -0.5, 79 -19, -10, 0.5, 80 -19.691, -9.04894, -0.5, 81 -19.691, -9.04894, 0.5, 82 -20.809, -9.41221, -0.5, 83 -20.809, -9.41221, 0.5, 84 -20.809, -10.5878, -0.5, 85 -20.809, -10.5878, 0.5, 86 -19.691, -10.9511, -0.5, 87 -19.691, -10.9511, 0.5, 88 -20, -10, -0.5, 89 -20, -10, 0.5, 90 -18, -10, -1, 91 -18, -10, 1, 92 -19.382, -8.09789, -1, 93 -19.382, -8.09789, 1, 94 -21.618, -8.82443, -1, 95 -21.618, -8.82443, 1, 96 -21.618, -11.1756, -1, 97 -21.618, -11.1756, 1, 98 -19.382, -11.9021, -1, 99 -19.382, -11.9021, 1, 100 -20, -10, -1, 101 -20, -10, 1, 102 -17, -10, -1.5, 103 -17, -10, 1.5, 104 -19.0729, -7.14683, -1.5, 105 -19.0729, -7.14683, 1.5, 106 -22.4271, -8.23664, -1.5, 107 -22.4271, -8.23664, 1.5, 108 -22.4271, -11.7634, -1.5, 109 -22.4271, -11.7634, 1.5, 110 -19.0729, -12.8532, -1.5, 111 -19.0729, -12.8532, 1.5, 112 -20, -10, -1.5, 113 -20, -10, 1.5, 114 -16, -10, -2, 115 -16, -10, 2, 116 -18.7639, -6.19577, -2, 117 -18.7639, -6.19577, 2, 118 -23.2361, -7.64886, -2, 119 -23.2361, -7.64886, 2, 120 -23.2361, -12.3511, -2, 121 -23.2361, -12.3511, 2, 122 -18.7639, -13.8042, -2, 123 -18.7639, -13.8042, 2, 124 -20, -10, -2, 125 -20, -10, 2, 126 -19, 0, -0.5, 127 -19, 0, 0.5, 128 -19.691, 0.951057, -0.5, 129 -19.691, 0.951057, 0.5, 130 -20.809, 0.587785, -0.5, 131 -20.809, 0.587785, 0.5, 132 -20.809, -0.587785, -0.5, 133 -20.809, -0.587785, 0.5, 134 -19.691, -0.951057, -0.5, 135 -19.691, -0.951057, 0.5, 136 -20, 0, -0.5, 137 -20, 0, 0.5, 138 -18, 0, -1, 139 -18, 0, 1, 140 -19.382, 1.90211, -1, 141 -19.382, 1.90211, 1, 142 -21.618, 1.17557, -1, 143 -21.618, 1.17557, 1, 144 -21.618, -1.17557, -1, 145 -21.618, -1.17557, 1, 146 -19.382, -1.90211, -1, 147 -19.382, -1.90211, 1, 148 -20, 0, -1, 149 -20, 0, 1, 150 -17, 0, -1.5, 151 -17, 0, 1.5, 152 -19.0729, 2.85317, -1.5, 153 -19.0729, 2.85317, 1.5, 154 -22.4271, 1.76336, -1.5, 155 -22.4271, 1.76336, 1.5, 156 -22.4271, -1.76336, -1.5, 157 -22.4271, -1.76336, 1.5, 158 -19.0729, -2.85317, -1.5, 159 -19.0729, -2.85317, 1.5, 160 -20, 0, -1.5, 161 -20, 0, 1.5, 162 -16, 0, -2, 163 -16, 0, 2, 164 -18.7639, 3.80423, -2, 165 -18.7639, 3.80423, 2, 166 -23.2361, 2.35114, -2, 167 -23.2361, 2.35114, 2, 168 -23.2361, -2.35114, -2, 169 -23.2361, -2.35114, 2, 170 -18.7639, -3.80423, -2, 171 -18.7639, -3.80423, 2, 172 -20, 0, -2, 173 -20, 0, 2, 174 -19, 10, -0.5, 175 -19, 10, 0.5, 176 -19.691, 10.9511, -0.5, 177 -19.691, 10.9511, 0.5, 178 -20.809, 10.5878, -0.5, 179 -20.809, 10.5878, 0.5, 180 -20.809, 9.41221, -0.5, 181 -20.809, 9.41221, 0.5, 182 -19.691, 9.04894, -0.5, 183 -19.691, 9.04894, 0.5, 184 -20, 10, -0.5, 185 -20, 10, 0.5, 186 -18, 10, -1, 187 -18, 10, 1, 188 -19.382, 11.9021, -1, 189 -19.382, 11.9021, 1, 190 -21.618, 11.1756, -1, 191 -21.618, 11.1756, 1, 192 -21.618, 8.82443, -1, 193 -21.618, 8.82443, 1, 194 -19.382, 8.09789, -1, 195 -19.382, 8.09789, 1, 196 -20, 10, -1, 197 -20, 10, 1, 198 -17, 10, -1.5, 199 -17, 10, 1.5, 200 -19.0729, 12.8532, -1.5, 201 -19.0729, 12.8532, 1.5, 202 -22.4271, 11.7634, -1.5, 203 -22.4271, 11.7634, 1.5, 204 -22.4271, 8.23664, -1.5, 205 -22.4271, 8.23664, 1.5, 206 -19.0729, 7.14683, -1.5, 207 -19.0729, 7.14683, 1.5, 208 -20, 10, -1.5, 209 -20, 10, 1.5, 210 -16, 10, -2, 211 -16, 10, 2, 212 -18.7639, 13.8042, -2, 213 -18.7639, 13.8042, 2, 214 -23.2361, 12.3511, -2, 215 -23.2361, 12.3511, 2, 216 -23.2361, 7.64886, -2, 217 -23.2361, 7.64886, 2, 218 -18.7639, 6.19577, -2, 219 -18.7639, 6.19577, 2, 220 -20, 10, -2, 221 -20, 10, 2, 222 -9, -20, -0.5, 223 -9, -20, 0.5, 224 -9.69098, -19.0489, -0.5, 225 -9.69098, -19.0489, 0.5, 226 -10.809, -19.4122, -0.5, 227 -10.809, -19.4122, 0.5, 228 -10.809, -20.5878, -0.5, 229 -10.809, -20.5878, 0.5, 230 -9.69098, -20.9511, -0.5, 231 -9.69098, -20.9511, 0.5, 232 -10, -20, -0.5, 233 -10, -20, 0.5, 234 -8, -20, -1, 235 -8, -20, 1, 236 -9.38197, -18.0979, -1, 237 -9.38197, -18.0979, 1, 238 -11.618, -18.8244, -1, 239 -11.618, -18.8244, 1, 240 -11.618, -21.1756, -1, 241 -11.618, -21.1756, 1, 242 -9.38197, -21.9021, -1, 243 -9.38197, -21.9021, 1, 244 -10, -20, -1, 245 -10, -20, 1, 246 -7, -20, -1.5, 247 -7, -20, 1.5, 248 -9.07295, -17.1468, -1.5, 249 -9.07295, -17.1468, 1.5, 250 -12.4271, -18.2366, -1.5, 251 -12.4271, -18.2366, 1.5, 252 -12.4271, -21.7634, -1.5, 253 -12.4271, -21.7634, 1.5, 254 -9.07295, -22.8532, -1.5, 255 -9.07295, -22.8532, 1.5, 256 -10, -20, -1.5, 257 -10, -20, 1.5, 258 -6, -20, -2, 259 -6, -20, 2, 260 -8.76393, -16.1958, -2, 261 -8.76393, -16.1958, 2, 262 -13.2361, -17.6489, -2, 263 -13.2361, -17.6489, 2, 264 -13.2361, -22.3511, -2, 265 -13.2361, -22.3511, 2, 266 -8.76393, -23.8042, -2, 267 -8.76393, -23.8042, 2, 268 -10, -20, -2, 269 -10, -20, 2, 270 -9, -10, -0.5, 271 -9, -10, 0.5, 272 -9.69098, -9.04894, -0.5, 273 -9.69098, -9.04894, 0.5, 274 -10.809, -9.41221, -0.5, 275 -10.809, -9.41221, 0.5, 276 -10.809, -10.5878, -0.5, 277 -10.809, -10.5878, 0.5, 278 -9.69098, -10.9511, -0.5, 279 -9.69098, -10.9511, 0.5, 280 -10, -10, -0.5, 281 -10, -10, 0.5, 282 -8, -10, -1, 283 -8, -10, 1, 284 -9.38197, -8.09789, -1, 285 -9.38197, -8.09789, 1, 286 -11.618, -8.82443, -1, 287 -11.618, -8.82443, 1, 288 -11.618, -11.1756, -1, 289 -11.618, -11.1756, 1, 290 -9.38197, -11.9021, -1, 291 -9.38197, -11.9021, 1, 292 -10, -10, -1, 293 -10, -10, 1, 294 -7, -10, -1.5, 295 -7, -10, 1.5, 296 -9.07295, -7.14683, -1.5, 297 -9.07295, -7.14683, 1.5, 298 -12.4271, -8.23664, -1.5, 299 -12.4271, -8.23664, 1.5, 300 -12.4271, -11.7634, -1.5, 301 -12.4271, -11.7634, 1.5, 302 -9.07295, -12.8532, -1.5, 303 -9.07295, -12.8532, 1.5, 304 -10, -10, -1.5, 305 -10, -10, 1.5, 306 -6, -10, -2, 307 -6, -10, 2, 308 -8.76393, -6.19577, -2, 309 -8.76393, -6.19577, 2, 310 -13.2361, -7.64886, -2, 311 -13.2361, -7.64886, 2, 312 -13.2361, -12.3511, -2, 313 -13.2361, -12.3511, 2, 314 -8.76393, -13.8042, -2, 315 -8.76393, -13.8042, 2, 316 -10, -10, -2, 317 -10, -10, 2, 318 -9, 0, -0.5, 319 -9, 0, 0.5, 320 -9.69098, 0.951057, -0.5, 321 -9.69098, 0.951057, 0.5, 322 -10.809, 0.587785, -0.5, 323 -10.809, 0.587785, 0.5, 324 -10.809, -0.587785, -0.5, 325 -10.809, -0.587785, 0.5, 326 -9.69098, -0.951057, -0.5, 327 -9.69098, -0.951057, 0.5, 328 -10, 0, -0.5, 329 -10, 0, 0.5, 330 -8, 0, -1, 331 -8, 0, 1, 332 -9.38197, 1.90211, -1, 333 -9.38197, 1.90211, 1, 334 -11.618, 1.17557, -1, 335 -11.618, 1.17557, 1, 336 -11.618, -1.17557, -1, 337 -11.618, -1.17557, 1, 338 -9.38197, -1.90211, -1, 339 -9.38197, -1.90211, 1, 340 -10, 0, -1, 341 -10, 0, 1, 342 -7, 0, -1.5, 343 -7, 0, 1.5, 344 -9.07295, 2.85317, -1.5, 345 -9.07295, 2.85317, 1.5, 346 -12.4271, 1.76336, -1.5, 347 -12.4271, 1.76336, 1.5, 348 -12.4271, -1.76336, -1.5, 349 -12.4271, -1.76336, 1.5, 350 -9.07295, -2.85317, -1.5, 351 -9.07295, -2.85317, 1.5, 352 -10, 0, -1.5, 353 -10, 0, 1.5, 354 -6, 0, -2, 355 -6, 0, 2, 356 -8.76393, 3.80423, -2, 357 -8.76393, 3.80423, 2, 358 -13.2361, 2.35114, -2, 359 -13.2361, 2.35114, 2, 360 -13.2361, -2.35114, -2, 361 -13.2361, -2.35114, 2, 362 -8.76393, -3.80423, -2, 363 -8.76393, -3.80423, 2, 364 -10, 0, -2, 365 -10, 0, 2, 366 -9, 10, -0.5, 367 -9, 10, 0.5, 368 -9.69098, 10.9511, -0.5, 369 -9.69098, 10.9511, 0.5, 370 -10.809, 10.5878, -0.5, 371 -10.809, 10.5878, 0.5, 372 -10.809, 9.41221, -0.5, 373 -10.809, 9.41221, 0.5, 374 -9.69098, 9.04894, -0.5, 375 -9.69098, 9.04894, 0.5, 376 -10, 10, -0.5, 377 -10, 10, 0.5, 378 -8, 10, -1, 379 -8, 10, 1, 380 -9.38197, 11.9021, -1, 381 -9.38197, 11.9021, 1, 382 -11.618, 11.1756, -1, 383 -11.618, 11.1756, 1, 384 -11.618, 8.82443, -1, 385 -11.618, 8.82443, 1, 386 -9.38197, 8.09789, -1, 387 -9.38197, 8.09789, 1, 388 -10, 10, -1, 389 -10, 10, 1, 390 -7, 10, -1.5, 391 -7, 10, 1.5, 392 -9.07295, 12.8532, -1.5, 393 -9.07295, 12.8532, 1.5, 394 -12.4271, 11.7634, -1.5, 395 -12.4271, 11.7634, 1.5, 396 -12.4271, 8.23664, -1.5, 397 -12.4271, 8.23664, 1.5, 398 -9.07295, 7.14683, -1.5, 399 -9.07295, 7.14683, 1.5, 400 -10, 10, -1.5, 401 -10, 10, 1.5, 402 -6, 10, -2, 403 -6, 10, 2, 404 -8.76393, 13.8042, -2, 405 -8.76393, 13.8042, 2, 406 -13.2361, 12.3511, -2, 407 -13.2361, 12.3511, 2, 408 -13.2361, 7.64886, -2, 409 -13.2361, 7.64886, 2, 410 -8.76393, 6.19577, -2, 411 -8.76393, 6.19577, 2, 412 -10, 10, -2, 413 -10, 10, 2, 414 1, -20, -0.5, 415 1, -20, 0.5, 416 0.309017, -19.0489, -0.5, 417 0.309017, -19.0489, 0.5, 418 -0.809017, -19.4122, -0.5, 419 -0.809017, -19.4122, 0.5, 420 -0.809017, -20.5878, -0.5, 421 -0.809017, -20.5878, 0.5, 422 0.309017, -20.9511, -0.5, 423 0.309017, -20.9511, 0.5, 424 0, -20, -0.5, 425 0, -20, 0.5, 426 2, -20, -1, 427 2, -20, 1, 428 0.618034, -18.0979, -1, 429 0.618034, -18.0979, 1, 430 -1.61803, -18.8244, -1, 431 -1.61803, -18.8244, 1, 432 -1.61803, -21.1756, -1, 433 -1.61803, -21.1756, 1, 434 0.618034, -21.9021, -1, 435 0.618034, -21.9021, 1, 436 0, -20, -1, 437 0, -20, 1, 438 3, -20, -1.5, 439 3, -20, 1.5, 440 0.927051, -17.1468, -1.5, 441 0.927051, -17.1468, 1.5, 442 -2.42705, -18.2366, -1.5, 443 -2.42705, -18.2366, 1.5, 444 -2.42705, -21.7634, -1.5, 445 -2.42705, -21.7634, 1.5, 446 0.927051, -22.8532, -1.5, 447 0.927051, -22.8532, 1.5, 448 0, -20, -1.5, 449 0, -20, 1.5, 450 4, -20, -2, 451 4, -20, 2, 452 1.23607, -16.1958, -2, 453 1.23607, -16.1958, 2, 454 -3.23607, -17.6489, -2, 455 -3.23607, -17.6489, 2, 456 -3.23607, -22.3511, -2, 457 -3.23607, -22.3511, 2, 458 1.23607, -23.8042, -2, 459 1.23607, -23.8042, 2, 460 0, -20, -2, 461 0, -20, 2, 462 1, -10, -0.5, 463 1, -10, 0.5, 464 0.309017, -9.04894, -0.5, 465 0.309017, -9.04894, 0.5, 466 -0.809017, -9.41221, -0.5, 467 -0.809017, -9.41221, 0.5, 468 -0.809017, -10.5878, -0.5, 469 -0.809017, -10.5878, 0.5, 470 0.309017, -10.9511, -0.5, 471 0.309017, -10.9511, 0.5, 472 0, -10, -0.5, 473 0, -10, 0.5, 474 2, -10, -1, 475 2, -10, 1, 476 0.618034, -8.09789, -1, 477 0.618034, -8.09789, 1, 478 -1.61803, -8.82443, -1, 479 -1.61803, -8.82443, 1, 480 -1.61803, -11.1756, -1, 481 -1.61803, -11.1756, 1, 482 0.618034, -11.9021, -1, 483 0.618034, -11.9021, 1, 484 0, -10, -1, 485 0, -10, 1, 486 3, -10, -1.5, 487 3, -10, 1.5, 488 0.927051, -7.14683, -1.5, 489 0.927051, -7.14683, 1.5, 490 -2.42705, -8.23664, -1.5, 491 -2.42705, -8.23664, 1.5, 492 -2.42705, -11.7634, -1.5, 493 -2.42705, -11.7634, 1.5, 494 0.927051, -12.8532, -1.5, 495 0.927051, -12.8532, 1.5, 496 0, -10, -1.5, 497 0, -10, 1.5, 498 4, -10, -2, 499 4, -10, 2, 500 1.23607, -6.19577, -2, 501 1.23607, -6.19577, 2, 502 -3.23607, -7.64886, -2, 503 -3.23607, -7.64886, 2, 504 -3.23607, -12.3511, -2, 505 -3.23607, -12.3511, 2, 506 1.23607, -13.8042, -2, 507 1.23607, -13.8042, 2, 508 0, -10, -2, 509 0, -10, 2, 510 1, 0, -0.5, 511 1, 0, 0.5, 512 0.309017, 0.951057, -0.5, 513 0.309017, 0.951057, 0.5, 514 -0.809017, 0.587785, -0.5, 515 -0.809017, 0.587785, 0.5, 516 -0.809017, -0.587785, -0.5, 517 -0.809017, -0.587785, 0.5, 518 0.309017, -0.951057, -0.5, 519 0.309017, -0.951057, 0.5, 520 0, 0, -0.5, 521 0, 0, 0.5, 522 2, 0, -1, 523 2, 0, 1, 524 0.618034, 1.90211, -1, 525 0.618034, 1.90211, 1, 526 -1.61803, 1.17557, -1, 527 -1.61803, 1.17557, 1, 528 -1.61803, -1.17557, -1, 529 -1.61803, -1.17557, 1, 530 0.618034, -1.90211, -1, 531 0.618034, -1.90211, 1, 532 0, 0, -1, 533 0, 0, 1, 534 3, 0, -1.5, 535 3, 0, 1.5, 536 0.927051, 2.85317, -1.5, 537 0.927051, 2.85317, 1.5, 538 -2.42705, 1.76336, -1.5, 539 -2.42705, 1.76336, 1.5, 540 -2.42705, -1.76336, -1.5, 541 -2.42705, -1.76336, 1.5, 542 0.927051, -2.85317, -1.5, 543 0.927051, -2.85317, 1.5, 544 0, 0, -1.5, 545 0, 0, 1.5, 546 4, 0, -2, 547 4, 0, 2, 548 1.23607, 3.80423, -2, 549 1.23607, 3.80423, 2, 550 -3.23607, 2.35114, -2, 551 -3.23607, 2.35114, 2, 552 -3.23607, -2.35114, -2, 553 -3.23607, -2.35114, 2, 554 1.23607, -3.80423, -2, 555 1.23607, -3.80423, 2, 556 0, 0, -2, 557 0, 0, 2, 558 1, 10, -0.5, 559 1, 10, 0.5, 560 0.309017, 10.9511, -0.5, 561 0.309017, 10.9511, 0.5, 562 -0.809017, 10.5878, -0.5, 563 -0.809017, 10.5878, 0.5, 564 -0.809017, 9.41221, -0.5, 565 -0.809017, 9.41221, 0.5, 566 0.309017, 9.04894, -0.5, 567 0.309017, 9.04894, 0.5, 568 0, 10, -0.5, 569 0, 10, 0.5, 570 2, 10, -1, 571 2, 10, 1, 572 0.618034, 11.9021, -1, 573 0.618034, 11.9021, 1, 574 -1.61803, 11.1756, -1, 575 -1.61803, 11.1756, 1, 576 -1.61803, 8.82443, -1, 577 -1.61803, 8.82443, 1, 578 0.618034, 8.09789, -1, 579 0.618034, 8.09789, 1, 580 0, 10, -1, 581 0, 10, 1, 582 3, 10, -1.5, 583 3, 10, 1.5, 584 0.927051, 12.8532, -1.5, 585 0.927051, 12.8532, 1.5, 586 -2.42705, 11.7634, -1.5, 587 -2.42705, 11.7634, 1.5, 588 -2.42705, 8.23664, -1.5, 589 -2.42705, 8.23664, 1.5, 590 0.927051, 7.14683, -1.5, 591 0.927051, 7.14683, 1.5, 592 0, 10, -1.5, 593 0, 10, 1.5, 594 4, 10, -2, 595 4, 10, 2, 596 1.23607, 13.8042, -2, 597 1.23607, 13.8042, 2, 598 -3.23607, 12.3511, -2, 599 -3.23607, 12.3511, 2, 600 -3.23607, 7.64886, -2, 601 -3.23607, 7.64886, 2, 602 1.23607, 6.19577, -2, 603 1.23607, 6.19577, 2, 604 0, 10, -2, 605 0, 10, 2, 606 11, -20, -0.5, 607 11, -20, 0.5, 608 10.309, -19.0489, -0.5, 609 10.309, -19.0489, 0.5, 610 9.19098, -19.4122, -0.5, 611 9.19098, -19.4122, 0.5, 612 9.19098, -20.5878, -0.5, 613 9.19098, -20.5878, 0.5, 614 10.309, -20.9511, -0.5, 615 10.309, -20.9511, 0.5, 616 10, -20, -0.5, 617 10, -20, 0.5, 618 12, -20, -1, 619 12, -20, 1, 620 10.618, -18.0979, -1, 621 10.618, -18.0979, 1, 622 8.38197, -18.8244, -1, 623 8.38197, -18.8244, 1, 624 8.38197, -21.1756, -1, 625 8.38197, -21.1756, 1, 626 10.618, -21.9021, -1, 627 10.618, -21.9021, 1, 628 10, -20, -1, 629 10, -20, 1, 630 13, -20, -1.5, 631 13, -20, 1.5, 632 10.9271, -17.1468, -1.5, 633 10.9271, -17.1468, 1.5, 634 7.57295, -18.2366, -1.5, 635 7.57295, -18.2366, 1.5, 636 7.57295, -21.7634, -1.5, 637 7.57295, -21.7634, 1.5, 638 10.9271, -22.8532, -1.5, 639 10.9271, -22.8532, 1.5, 640 10, -20, -1.5, 641 10, -20, 1.5, 642 14, -20, -2, 643 14, -20, 2, 644 11.2361, -16.1958, -2, 645 11.2361, -16.1958, 2, 646 6.76393, -17.6489, -2, 647 6.76393, -17.6489, 2, 648 6.76393, -22.3511, -2, 649 6.76393, -22.3511, 2, 650 11.2361, -23.8042, -2, 651 11.2361, -23.8042, 2, 652 10, -20, -2, 653 10, -20, 2, 654 11, -10, -0.5, 655 11, -10, 0.5, 656 10.309, -9.04894, -0.5, 657 10.309, -9.04894, 0.5, 658 9.19098, -9.41221, -0.5, 659 9.19098, -9.41221, 0.5, 660 9.19098, -10.5878, -0.5, 661 9.19098, -10.5878, 0.5, 662 10.309, -10.9511, -0.5, 663 10.309, -10.9511, 0.5, 664 10, -10, -0.5, 665 10, -10, 0.5, 666 12, -10, -1, 667 12, -10, 1, 668 10.618, -8.09789, -1, 669 10.618, -8.09789, 1, 670 8.38197, -8.82443, -1, 671 8.38197, -8.82443, 1, 672 8.38197, -11.1756, -1, 673 8.38197, -11.1756, 1, 674 10.618, -11.9021, -1, 675 10.618, -11.9021, 1, 676 10, -10, -1, 677 10, -10, 1, 678 13, -10, -1.5, 679 13, -10, 1.5, 680 10.9271, -7.14683, -1.5, 681 10.9271, -7.14683, 1.5, 682 7.57295, -8.23664, -1.5, 683 7.57295, -8.23664, 1.5, 684 7.57295, -11.7634, -1.5, 685 7.57295, -11.7634, 1.5, 686 10.9271, -12.8532, -1.5, 687 10.9271, -12.8532, 1.5, 688 10, -10, -1.5, 689 10, -10, 1.5, 690 14, -10, -2, 691 14, -10, 2, 692 11.2361, -6.19577, -2, 693 11.2361, -6.19577, 2, 694 6.76393, -7.64886, -2, 695 6.76393, -7.64886, 2, 696 6.76393, -12.3511, -2, 697 6.76393, -12.3511, 2, 698 11.2361, -13.8042, -2, 699 11.2361, -13.8042, 2, 700 10, -10, -2, 701 10, -10, 2, 702 11, 0, -0.5, 703 11, 0, 0.5, 704 10.309, 0.951057, -0.5, 705 10.309, 0.951057, 0.5, 706 9.19098, 0.587785, -0.5, 707 9.19098, 0.587785, 0.5, 708 9.19098, -0.587785, -0.5, 709 9.19098, -0.587785, 0.5, 710 10.309, -0.951057, -0.5, 711 10.309, -0.951057, 0.5, 712 10, 0, -0.5, 713 10, 0, 0.5, 714 12, 0, -1, 715 12, 0, 1, 716 10.618, 1.90211, -1, 717 10.618, 1.90211, 1, 718 8.38197, 1.17557, -1, 719 8.38197, 1.17557, 1, 720 8.38197, -1.17557, -1, 721 8.38197, -1.17557, 1, 722 10.618, -1.90211, -1, 723 10.618, -1.90211, 1, 724 10, 0, -1, 725 10, 0, 1, 726 13, 0, -1.5, 727 13, 0, 1.5, 728 10.9271, 2.85317, -1.5, 729 10.9271, 2.85317, 1.5, 730 7.57295, 1.76336, -1.5, 731 7.57295, 1.76336, 1.5, 732 7.57295, -1.76336, -1.5, 733 7.57295, -1.76336, 1.5, 734 10.9271, -2.85317, -1.5, 735 10.9271, -2.85317, 1.5, 736 10, 0, -1.5, 737 10, 0, 1.5, 738 14, 0, -2, 739 14, 0, 2, 740 11.2361, 3.80423, -2, 741 11.2361, 3.80423, 2, 742 6.76393, 2.35114, -2, 743 6.76393, 2.35114, 2, 744 6.76393, -2.35114, -2, 745 6.76393, -2.35114, 2, 746 11.2361, -3.80423, -2, 747 11.2361, -3.80423, 2, 748 10, 0, -2, 749 10, 0, 2, 750 11, 10, -0.5, 751 11, 10, 0.5, 752 10.309, 10.9511, -0.5, 753 10.309, 10.9511, 0.5, 754 9.19098, 10.5878, -0.5, 755 9.19098, 10.5878, 0.5, 756 9.19098, 9.41221, -0.5, 757 9.19098, 9.41221, 0.5, 758 10.309, 9.04894, -0.5, 759 10.309, 9.04894, 0.5, 760 10, 10, -0.5, 761 10, 10, 0.5, 762 12, 10, -1, 763 12, 10, 1, 764 10.618, 11.9021, -1, 765 10.618, 11.9021, 1, 766 8.38197, 11.1756, -1, 767 8.38197, 11.1756, 1, 768 8.38197, 8.82443, -1, 769 8.38197, 8.82443, 1, 770 10.618, 8.09789, -1, 771 10.618, 8.09789, 1, 772 10, 10, -1, 773 10, 10, 1, 774 13, 10, -1.5, 775 13, 10, 1.5, 776 10.9271, 12.8532, -1.5, 777 10.9271, 12.8532, 1.5, 778 7.57295, 11.7634, -1.5, 779 7.57295, 11.7634, 1.5, 780 7.57295, 8.23664, -1.5, 781 7.57295, 8.23664, 1.5, 782 10.9271, 7.14683, -1.5, 783 10.9271, 7.14683, 1.5, 784 10, 10, -1.5, 785 10, 10, 1.5, 786 14, 10, -2, 787 14, 10, 2, 788 11.2361, 13.8042, -2, 789 11.2361, 13.8042, 2, 790 6.76393, 12.3511, -2, 791 6.76393, 12.3511, 2, 792 6.76393, 7.64886, -2, 793 6.76393, 7.64886, 2, 794 11.2361, 6.19577, -2, 795 11.2361, 6.19577, 2, 796 10, 10, -2, 797 10, 10, 2 798 }; 799 static const unsigned some_enclosures_triangles_count = 1280; 800 static const unsigned some_enclosures_triangles[3840] = 801 { 802 0, 1, 2, 803 2, 1, 3, 804 2, 3, 4, 805 4, 3, 5, 806 4, 5, 6, 807 6, 5, 7, 808 6, 7, 8, 809 8, 7, 9, 810 8, 9, 0, 811 0, 9, 1, 812 10, 0, 2, 813 10, 2, 4, 814 10, 4, 6, 815 10, 6, 8, 816 10, 8, 0, 817 11, 3, 1, 818 11, 5, 3, 819 11, 7, 5, 820 11, 9, 7, 821 11, 1, 9, 822 12, 13, 14, 823 14, 13, 15, 824 14, 15, 16, 825 16, 15, 17, 826 16, 17, 18, 827 18, 17, 19, 828 18, 19, 20, 829 20, 19, 21, 830 20, 21, 12, 831 12, 21, 13, 832 22, 12, 14, 833 22, 14, 16, 834 22, 16, 18, 835 22, 18, 20, 836 22, 20, 12, 837 23, 15, 13, 838 23, 17, 15, 839 23, 19, 17, 840 23, 21, 19, 841 23, 13, 21, 842 24, 25, 26, 843 26, 25, 27, 844 26, 27, 28, 845 28, 27, 29, 846 28, 29, 30, 847 30, 29, 31, 848 30, 31, 32, 849 32, 31, 33, 850 32, 33, 24, 851 24, 33, 25, 852 34, 24, 26, 853 34, 26, 28, 854 34, 28, 30, 855 34, 30, 32, 856 34, 32, 24, 857 35, 27, 25, 858 35, 29, 27, 859 35, 31, 29, 860 35, 33, 31, 861 35, 25, 33, 862 36, 37, 38, 863 38, 37, 39, 864 38, 39, 40, 865 40, 39, 41, 866 40, 41, 42, 867 42, 41, 43, 868 42, 43, 44, 869 44, 43, 45, 870 44, 45, 36, 871 36, 45, 37, 872 46, 36, 38, 873 46, 38, 40, 874 46, 40, 42, 875 46, 42, 44, 876 46, 44, 36, 877 47, 39, 37, 878 47, 41, 39, 879 47, 43, 41, 880 47, 45, 43, 881 47, 37, 45, 882 48, 49, 50, 883 50, 49, 51, 884 50, 51, 52, 885 52, 51, 53, 886 52, 53, 54, 887 54, 53, 55, 888 54, 55, 56, 889 56, 55, 57, 890 56, 57, 48, 891 48, 57, 49, 892 58, 48, 50, 893 58, 50, 52, 894 58, 52, 54, 895 58, 54, 56, 896 58, 56, 48, 897 59, 51, 49, 898 59, 53, 51, 899 59, 55, 53, 900 59, 57, 55, 901 59, 49, 57, 902 60, 61, 62, 903 62, 61, 63, 904 62, 63, 64, 905 64, 63, 65, 906 64, 65, 66, 907 66, 65, 67, 908 66, 67, 68, 909 68, 67, 69, 910 68, 69, 60, 911 60, 69, 61, 912 70, 60, 62, 913 70, 62, 64, 914 70, 64, 66, 915 70, 66, 68, 916 70, 68, 60, 917 71, 63, 61, 918 71, 65, 63, 919 71, 67, 65, 920 71, 69, 67, 921 71, 61, 69, 922 72, 73, 74, 923 74, 73, 75, 924 74, 75, 76, 925 76, 75, 77, 926 76, 77, 78, 927 78, 77, 79, 928 78, 79, 80, 929 80, 79, 81, 930 80, 81, 72, 931 72, 81, 73, 932 82, 72, 74, 933 82, 74, 76, 934 82, 76, 78, 935 82, 78, 80, 936 82, 80, 72, 937 83, 75, 73, 938 83, 77, 75, 939 83, 79, 77, 940 83, 81, 79, 941 83, 73, 81, 942 84, 85, 86, 943 86, 85, 87, 944 86, 87, 88, 945 88, 87, 89, 946 88, 89, 90, 947 90, 89, 91, 948 90, 91, 92, 949 92, 91, 93, 950 92, 93, 84, 951 84, 93, 85, 952 94, 84, 86, 953 94, 86, 88, 954 94, 88, 90, 955 94, 90, 92, 956 94, 92, 84, 957 95, 87, 85, 958 95, 89, 87, 959 95, 91, 89, 960 95, 93, 91, 961 95, 85, 93, 962 96, 97, 98, 963 98, 97, 99, 964 98, 99, 100, 965 100, 99, 101, 966 100, 101, 102, 967 102, 101, 103, 968 102, 103, 104, 969 104, 103, 105, 970 104, 105, 96, 971 96, 105, 97, 972 106, 96, 98, 973 106, 98, 100, 974 106, 100, 102, 975 106, 102, 104, 976 106, 104, 96, 977 107, 99, 97, 978 107, 101, 99, 979 107, 103, 101, 980 107, 105, 103, 981 107, 97, 105, 982 108, 109, 110, 983 110, 109, 111, 984 110, 111, 112, 985 112, 111, 113, 986 112, 113, 114, 987 114, 113, 115, 988 114, 115, 116, 989 116, 115, 117, 990 116, 117, 108, 991 108, 117, 109, 992 118, 108, 110, 993 118, 110, 112, 994 118, 112, 114, 995 118, 114, 116, 996 118, 116, 108, 997 119, 111, 109, 998 119, 113, 111, 999 119, 115, 113, 1000 119, 117, 115, 1001 119, 109, 117, 1002 120, 121, 122, 1003 122, 121, 123, 1004 122, 123, 124, 1005 124, 123, 125, 1006 124, 125, 126, 1007 126, 125, 127, 1008 126, 127, 128, 1009 128, 127, 129, 1010 128, 129, 120, 1011 120, 129, 121, 1012 130, 120, 122, 1013 130, 122, 124, 1014 130, 124, 126, 1015 130, 126, 128, 1016 130, 128, 120, 1017 131, 123, 121, 1018 131, 125, 123, 1019 131, 127, 125, 1020 131, 129, 127, 1021 131, 121, 129, 1022 132, 133, 134, 1023 134, 133, 135, 1024 134, 135, 136, 1025 136, 135, 137, 1026 136, 137, 138, 1027 138, 137, 139, 1028 138, 139, 140, 1029 140, 139, 141, 1030 140, 141, 132, 1031 132, 141, 133, 1032 142, 132, 134, 1033 142, 134, 136, 1034 142, 136, 138, 1035 142, 138, 140, 1036 142, 140, 132, 1037 143, 135, 133, 1038 143, 137, 135, 1039 143, 139, 137, 1040 143, 141, 139, 1041 143, 133, 141, 1042 144, 145, 146, 1043 146, 145, 147, 1044 146, 147, 148, 1045 148, 147, 149, 1046 148, 149, 150, 1047 150, 149, 151, 1048 150, 151, 152, 1049 152, 151, 153, 1050 152, 153, 144, 1051 144, 153, 145, 1052 154, 144, 146, 1053 154, 146, 148, 1054 154, 148, 150, 1055 154, 150, 152, 1056 154, 152, 144, 1057 155, 147, 145, 1058 155, 149, 147, 1059 155, 151, 149, 1060 155, 153, 151, 1061 155, 145, 153, 1062 156, 157, 158, 1063 158, 157, 159, 1064 158, 159, 160, 1065 160, 159, 161, 1066 160, 161, 162, 1067 162, 161, 163, 1068 162, 163, 164, 1069 164, 163, 165, 1070 164, 165, 156, 1071 156, 165, 157, 1072 166, 156, 158, 1073 166, 158, 160, 1074 166, 160, 162, 1075 166, 162, 164, 1076 166, 164, 156, 1077 167, 159, 157, 1078 167, 161, 159, 1079 167, 163, 161, 1080 167, 165, 163, 1081 167, 157, 165, 1082 168, 169, 170, 1083 170, 169, 171, 1084 170, 171, 172, 1085 172, 171, 173, 1086 172, 173, 174, 1087 174, 173, 175, 1088 174, 175, 176, 1089 176, 175, 177, 1090 176, 177, 168, 1091 168, 177, 169, 1092 178, 168, 170, 1093 178, 170, 172, 1094 178, 172, 174, 1095 178, 174, 176, 1096 178, 176, 168, 1097 179, 171, 169, 1098 179, 173, 171, 1099 179, 175, 173, 1100 179, 177, 175, 1101 179, 169, 177, 1102 180, 181, 182, 1103 182, 181, 183, 1104 182, 183, 184, 1105 184, 183, 185, 1106 184, 185, 186, 1107 186, 185, 187, 1108 186, 187, 188, 1109 188, 187, 189, 1110 188, 189, 180, 1111 180, 189, 181, 1112 190, 180, 182, 1113 190, 182, 184, 1114 190, 184, 186, 1115 190, 186, 188, 1116 190, 188, 180, 1117 191, 183, 181, 1118 191, 185, 183, 1119 191, 187, 185, 1120 191, 189, 187, 1121 191, 181, 189, 1122 192, 193, 194, 1123 194, 193, 195, 1124 194, 195, 196, 1125 196, 195, 197, 1126 196, 197, 198, 1127 198, 197, 199, 1128 198, 199, 200, 1129 200, 199, 201, 1130 200, 201, 192, 1131 192, 201, 193, 1132 202, 192, 194, 1133 202, 194, 196, 1134 202, 196, 198, 1135 202, 198, 200, 1136 202, 200, 192, 1137 203, 195, 193, 1138 203, 197, 195, 1139 203, 199, 197, 1140 203, 201, 199, 1141 203, 193, 201, 1142 204, 205, 206, 1143 206, 205, 207, 1144 206, 207, 208, 1145 208, 207, 209, 1146 208, 209, 210, 1147 210, 209, 211, 1148 210, 211, 212, 1149 212, 211, 213, 1150 212, 213, 204, 1151 204, 213, 205, 1152 214, 204, 206, 1153 214, 206, 208, 1154 214, 208, 210, 1155 214, 210, 212, 1156 214, 212, 204, 1157 215, 207, 205, 1158 215, 209, 207, 1159 215, 211, 209, 1160 215, 213, 211, 1161 215, 205, 213, 1162 216, 217, 218, 1163 218, 217, 219, 1164 218, 219, 220, 1165 220, 219, 221, 1166 220, 221, 222, 1167 222, 221, 223, 1168 222, 223, 224, 1169 224, 223, 225, 1170 224, 225, 216, 1171 216, 225, 217, 1172 226, 216, 218, 1173 226, 218, 220, 1174 226, 220, 222, 1175 226, 222, 224, 1176 226, 224, 216, 1177 227, 219, 217, 1178 227, 221, 219, 1179 227, 223, 221, 1180 227, 225, 223, 1181 227, 217, 225, 1182 228, 229, 230, 1183 230, 229, 231, 1184 230, 231, 232, 1185 232, 231, 233, 1186 232, 233, 234, 1187 234, 233, 235, 1188 234, 235, 236, 1189 236, 235, 237, 1190 236, 237, 228, 1191 228, 237, 229, 1192 238, 228, 230, 1193 238, 230, 232, 1194 238, 232, 234, 1195 238, 234, 236, 1196 238, 236, 228, 1197 239, 231, 229, 1198 239, 233, 231, 1199 239, 235, 233, 1200 239, 237, 235, 1201 239, 229, 237, 1202 240, 241, 242, 1203 242, 241, 243, 1204 242, 243, 244, 1205 244, 243, 245, 1206 244, 245, 246, 1207 246, 245, 247, 1208 246, 247, 248, 1209 248, 247, 249, 1210 248, 249, 240, 1211 240, 249, 241, 1212 250, 240, 242, 1213 250, 242, 244, 1214 250, 244, 246, 1215 250, 246, 248, 1216 250, 248, 240, 1217 251, 243, 241, 1218 251, 245, 243, 1219 251, 247, 245, 1220 251, 249, 247, 1221 251, 241, 249, 1222 252, 253, 254, 1223 254, 253, 255, 1224 254, 255, 256, 1225 256, 255, 257, 1226 256, 257, 258, 1227 258, 257, 259, 1228 258, 259, 260, 1229 260, 259, 261, 1230 260, 261, 252, 1231 252, 261, 253, 1232 262, 252, 254, 1233 262, 254, 256, 1234 262, 256, 258, 1235 262, 258, 260, 1236 262, 260, 252, 1237 263, 255, 253, 1238 263, 257, 255, 1239 263, 259, 257, 1240 263, 261, 259, 1241 263, 253, 261, 1242 264, 265, 266, 1243 266, 265, 267, 1244 266, 267, 268, 1245 268, 267, 269, 1246 268, 269, 270, 1247 270, 269, 271, 1248 270, 271, 272, 1249 272, 271, 273, 1250 272, 273, 264, 1251 264, 273, 265, 1252 274, 264, 266, 1253 274, 266, 268, 1254 274, 268, 270, 1255 274, 270, 272, 1256 274, 272, 264, 1257 275, 267, 265, 1258 275, 269, 267, 1259 275, 271, 269, 1260 275, 273, 271, 1261 275, 265, 273, 1262 276, 277, 278, 1263 278, 277, 279, 1264 278, 279, 280, 1265 280, 279, 281, 1266 280, 281, 282, 1267 282, 281, 283, 1268 282, 283, 284, 1269 284, 283, 285, 1270 284, 285, 276, 1271 276, 285, 277, 1272 286, 276, 278, 1273 286, 278, 280, 1274 286, 280, 282, 1275 286, 282, 284, 1276 286, 284, 276, 1277 287, 279, 277, 1278 287, 281, 279, 1279 287, 283, 281, 1280 287, 285, 283, 1281 287, 277, 285, 1282 288, 289, 290, 1283 290, 289, 291, 1284 290, 291, 292, 1285 292, 291, 293, 1286 292, 293, 294, 1287 294, 293, 295, 1288 294, 295, 296, 1289 296, 295, 297, 1290 296, 297, 288, 1291 288, 297, 289, 1292 298, 288, 290, 1293 298, 290, 292, 1294 298, 292, 294, 1295 298, 294, 296, 1296 298, 296, 288, 1297 299, 291, 289, 1298 299, 293, 291, 1299 299, 295, 293, 1300 299, 297, 295, 1301 299, 289, 297, 1302 300, 301, 302, 1303 302, 301, 303, 1304 302, 303, 304, 1305 304, 303, 305, 1306 304, 305, 306, 1307 306, 305, 307, 1308 306, 307, 308, 1309 308, 307, 309, 1310 308, 309, 300, 1311 300, 309, 301, 1312 310, 300, 302, 1313 310, 302, 304, 1314 310, 304, 306, 1315 310, 306, 308, 1316 310, 308, 300, 1317 311, 303, 301, 1318 311, 305, 303, 1319 311, 307, 305, 1320 311, 309, 307, 1321 311, 301, 309, 1322 312, 313, 314, 1323 314, 313, 315, 1324 314, 315, 316, 1325 316, 315, 317, 1326 316, 317, 318, 1327 318, 317, 319, 1328 318, 319, 320, 1329 320, 319, 321, 1330 320, 321, 312, 1331 312, 321, 313, 1332 322, 312, 314, 1333 322, 314, 316, 1334 322, 316, 318, 1335 322, 318, 320, 1336 322, 320, 312, 1337 323, 315, 313, 1338 323, 317, 315, 1339 323, 319, 317, 1340 323, 321, 319, 1341 323, 313, 321, 1342 324, 325, 326, 1343 326, 325, 327, 1344 326, 327, 328, 1345 328, 327, 329, 1346 328, 329, 330, 1347 330, 329, 331, 1348 330, 331, 332, 1349 332, 331, 333, 1350 332, 333, 324, 1351 324, 333, 325, 1352 334, 324, 326, 1353 334, 326, 328, 1354 334, 328, 330, 1355 334, 330, 332, 1356 334, 332, 324, 1357 335, 327, 325, 1358 335, 329, 327, 1359 335, 331, 329, 1360 335, 333, 331, 1361 335, 325, 333, 1362 336, 337, 338, 1363 338, 337, 339, 1364 338, 339, 340, 1365 340, 339, 341, 1366 340, 341, 342, 1367 342, 341, 343, 1368 342, 343, 344, 1369 344, 343, 345, 1370 344, 345, 336, 1371 336, 345, 337, 1372 346, 336, 338, 1373 346, 338, 340, 1374 346, 340, 342, 1375 346, 342, 344, 1376 346, 344, 336, 1377 347, 339, 337, 1378 347, 341, 339, 1379 347, 343, 341, 1380 347, 345, 343, 1381 347, 337, 345, 1382 348, 349, 350, 1383 350, 349, 351, 1384 350, 351, 352, 1385 352, 351, 353, 1386 352, 353, 354, 1387 354, 353, 355, 1388 354, 355, 356, 1389 356, 355, 357, 1390 356, 357, 348, 1391 348, 357, 349, 1392 358, 348, 350, 1393 358, 350, 352, 1394 358, 352, 354, 1395 358, 354, 356, 1396 358, 356, 348, 1397 359, 351, 349, 1398 359, 353, 351, 1399 359, 355, 353, 1400 359, 357, 355, 1401 359, 349, 357, 1402 360, 361, 362, 1403 362, 361, 363, 1404 362, 363, 364, 1405 364, 363, 365, 1406 364, 365, 366, 1407 366, 365, 367, 1408 366, 367, 368, 1409 368, 367, 369, 1410 368, 369, 360, 1411 360, 369, 361, 1412 370, 360, 362, 1413 370, 362, 364, 1414 370, 364, 366, 1415 370, 366, 368, 1416 370, 368, 360, 1417 371, 363, 361, 1418 371, 365, 363, 1419 371, 367, 365, 1420 371, 369, 367, 1421 371, 361, 369, 1422 372, 373, 374, 1423 374, 373, 375, 1424 374, 375, 376, 1425 376, 375, 377, 1426 376, 377, 378, 1427 378, 377, 379, 1428 378, 379, 380, 1429 380, 379, 381, 1430 380, 381, 372, 1431 372, 381, 373, 1432 382, 372, 374, 1433 382, 374, 376, 1434 382, 376, 378, 1435 382, 378, 380, 1436 382, 380, 372, 1437 383, 375, 373, 1438 383, 377, 375, 1439 383, 379, 377, 1440 383, 381, 379, 1441 383, 373, 381, 1442 384, 385, 386, 1443 386, 385, 387, 1444 386, 387, 388, 1445 388, 387, 389, 1446 388, 389, 390, 1447 390, 389, 391, 1448 390, 391, 392, 1449 392, 391, 393, 1450 392, 393, 384, 1451 384, 393, 385, 1452 394, 384, 386, 1453 394, 386, 388, 1454 394, 388, 390, 1455 394, 390, 392, 1456 394, 392, 384, 1457 395, 387, 385, 1458 395, 389, 387, 1459 395, 391, 389, 1460 395, 393, 391, 1461 395, 385, 393, 1462 396, 397, 398, 1463 398, 397, 399, 1464 398, 399, 400, 1465 400, 399, 401, 1466 400, 401, 402, 1467 402, 401, 403, 1468 402, 403, 404, 1469 404, 403, 405, 1470 404, 405, 396, 1471 396, 405, 397, 1472 406, 396, 398, 1473 406, 398, 400, 1474 406, 400, 402, 1475 406, 402, 404, 1476 406, 404, 396, 1477 407, 399, 397, 1478 407, 401, 399, 1479 407, 403, 401, 1480 407, 405, 403, 1481 407, 397, 405, 1482 408, 409, 410, 1483 410, 409, 411, 1484 410, 411, 412, 1485 412, 411, 413, 1486 412, 413, 414, 1487 414, 413, 415, 1488 414, 415, 416, 1489 416, 415, 417, 1490 416, 417, 408, 1491 408, 417, 409, 1492 418, 408, 410, 1493 418, 410, 412, 1494 418, 412, 414, 1495 418, 414, 416, 1496 418, 416, 408, 1497 419, 411, 409, 1498 419, 413, 411, 1499 419, 415, 413, 1500 419, 417, 415, 1501 419, 409, 417, 1502 420, 421, 422, 1503 422, 421, 423, 1504 422, 423, 424, 1505 424, 423, 425, 1506 424, 425, 426, 1507 426, 425, 427, 1508 426, 427, 428, 1509 428, 427, 429, 1510 428, 429, 420, 1511 420, 429, 421, 1512 430, 420, 422, 1513 430, 422, 424, 1514 430, 424, 426, 1515 430, 426, 428, 1516 430, 428, 420, 1517 431, 423, 421, 1518 431, 425, 423, 1519 431, 427, 425, 1520 431, 429, 427, 1521 431, 421, 429, 1522 432, 433, 434, 1523 434, 433, 435, 1524 434, 435, 436, 1525 436, 435, 437, 1526 436, 437, 438, 1527 438, 437, 439, 1528 438, 439, 440, 1529 440, 439, 441, 1530 440, 441, 432, 1531 432, 441, 433, 1532 442, 432, 434, 1533 442, 434, 436, 1534 442, 436, 438, 1535 442, 438, 440, 1536 442, 440, 432, 1537 443, 435, 433, 1538 443, 437, 435, 1539 443, 439, 437, 1540 443, 441, 439, 1541 443, 433, 441, 1542 444, 445, 446, 1543 446, 445, 447, 1544 446, 447, 448, 1545 448, 447, 449, 1546 448, 449, 450, 1547 450, 449, 451, 1548 450, 451, 452, 1549 452, 451, 453, 1550 452, 453, 444, 1551 444, 453, 445, 1552 454, 444, 446, 1553 454, 446, 448, 1554 454, 448, 450, 1555 454, 450, 452, 1556 454, 452, 444, 1557 455, 447, 445, 1558 455, 449, 447, 1559 455, 451, 449, 1560 455, 453, 451, 1561 455, 445, 453, 1562 456, 457, 458, 1563 458, 457, 459, 1564 458, 459, 460, 1565 460, 459, 461, 1566 460, 461, 462, 1567 462, 461, 463, 1568 462, 463, 464, 1569 464, 463, 465, 1570 464, 465, 456, 1571 456, 465, 457, 1572 466, 456, 458, 1573 466, 458, 460, 1574 466, 460, 462, 1575 466, 462, 464, 1576 466, 464, 456, 1577 467, 459, 457, 1578 467, 461, 459, 1579 467, 463, 461, 1580 467, 465, 463, 1581 467, 457, 465, 1582 468, 469, 470, 1583 470, 469, 471, 1584 470, 471, 472, 1585 472, 471, 473, 1586 472, 473, 474, 1587 474, 473, 475, 1588 474, 475, 476, 1589 476, 475, 477, 1590 476, 477, 468, 1591 468, 477, 469, 1592 478, 468, 470, 1593 478, 470, 472, 1594 478, 472, 474, 1595 478, 474, 476, 1596 478, 476, 468, 1597 479, 471, 469, 1598 479, 473, 471, 1599 479, 475, 473, 1600 479, 477, 475, 1601 479, 469, 477, 1602 480, 481, 482, 1603 482, 481, 483, 1604 482, 483, 484, 1605 484, 483, 485, 1606 484, 485, 486, 1607 486, 485, 487, 1608 486, 487, 488, 1609 488, 487, 489, 1610 488, 489, 480, 1611 480, 489, 481, 1612 490, 480, 482, 1613 490, 482, 484, 1614 490, 484, 486, 1615 490, 486, 488, 1616 490, 488, 480, 1617 491, 483, 481, 1618 491, 485, 483, 1619 491, 487, 485, 1620 491, 489, 487, 1621 491, 481, 489, 1622 492, 493, 494, 1623 494, 493, 495, 1624 494, 495, 496, 1625 496, 495, 497, 1626 496, 497, 498, 1627 498, 497, 499, 1628 498, 499, 500, 1629 500, 499, 501, 1630 500, 501, 492, 1631 492, 501, 493, 1632 502, 492, 494, 1633 502, 494, 496, 1634 502, 496, 498, 1635 502, 498, 500, 1636 502, 500, 492, 1637 503, 495, 493, 1638 503, 497, 495, 1639 503, 499, 497, 1640 503, 501, 499, 1641 503, 493, 501, 1642 504, 505, 506, 1643 506, 505, 507, 1644 506, 507, 508, 1645 508, 507, 509, 1646 508, 509, 510, 1647 510, 509, 511, 1648 510, 511, 512, 1649 512, 511, 513, 1650 512, 513, 504, 1651 504, 513, 505, 1652 514, 504, 506, 1653 514, 506, 508, 1654 514, 508, 510, 1655 514, 510, 512, 1656 514, 512, 504, 1657 515, 507, 505, 1658 515, 509, 507, 1659 515, 511, 509, 1660 515, 513, 511, 1661 515, 505, 513, 1662 516, 517, 518, 1663 518, 517, 519, 1664 518, 519, 520, 1665 520, 519, 521, 1666 520, 521, 522, 1667 522, 521, 523, 1668 522, 523, 524, 1669 524, 523, 525, 1670 524, 525, 516, 1671 516, 525, 517, 1672 526, 516, 518, 1673 526, 518, 520, 1674 526, 520, 522, 1675 526, 522, 524, 1676 526, 524, 516, 1677 527, 519, 517, 1678 527, 521, 519, 1679 527, 523, 521, 1680 527, 525, 523, 1681 527, 517, 525, 1682 528, 529, 530, 1683 530, 529, 531, 1684 530, 531, 532, 1685 532, 531, 533, 1686 532, 533, 534, 1687 534, 533, 535, 1688 534, 535, 536, 1689 536, 535, 537, 1690 536, 537, 528, 1691 528, 537, 529, 1692 538, 528, 530, 1693 538, 530, 532, 1694 538, 532, 534, 1695 538, 534, 536, 1696 538, 536, 528, 1697 539, 531, 529, 1698 539, 533, 531, 1699 539, 535, 533, 1700 539, 537, 535, 1701 539, 529, 537, 1702 540, 541, 542, 1703 542, 541, 543, 1704 542, 543, 544, 1705 544, 543, 545, 1706 544, 545, 546, 1707 546, 545, 547, 1708 546, 547, 548, 1709 548, 547, 549, 1710 548, 549, 540, 1711 540, 549, 541, 1712 550, 540, 542, 1713 550, 542, 544, 1714 550, 544, 546, 1715 550, 546, 548, 1716 550, 548, 540, 1717 551, 543, 541, 1718 551, 545, 543, 1719 551, 547, 545, 1720 551, 549, 547, 1721 551, 541, 549, 1722 552, 553, 554, 1723 554, 553, 555, 1724 554, 555, 556, 1725 556, 555, 557, 1726 556, 557, 558, 1727 558, 557, 559, 1728 558, 559, 560, 1729 560, 559, 561, 1730 560, 561, 552, 1731 552, 561, 553, 1732 562, 552, 554, 1733 562, 554, 556, 1734 562, 556, 558, 1735 562, 558, 560, 1736 562, 560, 552, 1737 563, 555, 553, 1738 563, 557, 555, 1739 563, 559, 557, 1740 563, 561, 559, 1741 563, 553, 561, 1742 564, 565, 566, 1743 566, 565, 567, 1744 566, 567, 568, 1745 568, 567, 569, 1746 568, 569, 570, 1747 570, 569, 571, 1748 570, 571, 572, 1749 572, 571, 573, 1750 572, 573, 564, 1751 564, 573, 565, 1752 574, 564, 566, 1753 574, 566, 568, 1754 574, 568, 570, 1755 574, 570, 572, 1756 574, 572, 564, 1757 575, 567, 565, 1758 575, 569, 567, 1759 575, 571, 569, 1760 575, 573, 571, 1761 575, 565, 573, 1762 576, 577, 578, 1763 578, 577, 579, 1764 578, 579, 580, 1765 580, 579, 581, 1766 580, 581, 582, 1767 582, 581, 583, 1768 582, 583, 584, 1769 584, 583, 585, 1770 584, 585, 576, 1771 576, 585, 577, 1772 586, 576, 578, 1773 586, 578, 580, 1774 586, 580, 582, 1775 586, 582, 584, 1776 586, 584, 576, 1777 587, 579, 577, 1778 587, 581, 579, 1779 587, 583, 581, 1780 587, 585, 583, 1781 587, 577, 585, 1782 588, 589, 590, 1783 590, 589, 591, 1784 590, 591, 592, 1785 592, 591, 593, 1786 592, 593, 594, 1787 594, 593, 595, 1788 594, 595, 596, 1789 596, 595, 597, 1790 596, 597, 588, 1791 588, 597, 589, 1792 598, 588, 590, 1793 598, 590, 592, 1794 598, 592, 594, 1795 598, 594, 596, 1796 598, 596, 588, 1797 599, 591, 589, 1798 599, 593, 591, 1799 599, 595, 593, 1800 599, 597, 595, 1801 599, 589, 597, 1802 600, 601, 602, 1803 602, 601, 603, 1804 602, 603, 604, 1805 604, 603, 605, 1806 604, 605, 606, 1807 606, 605, 607, 1808 606, 607, 608, 1809 608, 607, 609, 1810 608, 609, 600, 1811 600, 609, 601, 1812 610, 600, 602, 1813 610, 602, 604, 1814 610, 604, 606, 1815 610, 606, 608, 1816 610, 608, 600, 1817 611, 603, 601, 1818 611, 605, 603, 1819 611, 607, 605, 1820 611, 609, 607, 1821 611, 601, 609, 1822 612, 613, 614, 1823 614, 613, 615, 1824 614, 615, 616, 1825 616, 615, 617, 1826 616, 617, 618, 1827 618, 617, 619, 1828 618, 619, 620, 1829 620, 619, 621, 1830 620, 621, 612, 1831 612, 621, 613, 1832 622, 612, 614, 1833 622, 614, 616, 1834 622, 616, 618, 1835 622, 618, 620, 1836 622, 620, 612, 1837 623, 615, 613, 1838 623, 617, 615, 1839 623, 619, 617, 1840 623, 621, 619, 1841 623, 613, 621, 1842 624, 625, 626, 1843 626, 625, 627, 1844 626, 627, 628, 1845 628, 627, 629, 1846 628, 629, 630, 1847 630, 629, 631, 1848 630, 631, 632, 1849 632, 631, 633, 1850 632, 633, 624, 1851 624, 633, 625, 1852 634, 624, 626, 1853 634, 626, 628, 1854 634, 628, 630, 1855 634, 630, 632, 1856 634, 632, 624, 1857 635, 627, 625, 1858 635, 629, 627, 1859 635, 631, 629, 1860 635, 633, 631, 1861 635, 625, 633, 1862 636, 637, 638, 1863 638, 637, 639, 1864 638, 639, 640, 1865 640, 639, 641, 1866 640, 641, 642, 1867 642, 641, 643, 1868 642, 643, 644, 1869 644, 643, 645, 1870 644, 645, 636, 1871 636, 645, 637, 1872 646, 636, 638, 1873 646, 638, 640, 1874 646, 640, 642, 1875 646, 642, 644, 1876 646, 644, 636, 1877 647, 639, 637, 1878 647, 641, 639, 1879 647, 643, 641, 1880 647, 645, 643, 1881 647, 637, 645, 1882 648, 649, 650, 1883 650, 649, 651, 1884 650, 651, 652, 1885 652, 651, 653, 1886 652, 653, 654, 1887 654, 653, 655, 1888 654, 655, 656, 1889 656, 655, 657, 1890 656, 657, 648, 1891 648, 657, 649, 1892 658, 648, 650, 1893 658, 650, 652, 1894 658, 652, 654, 1895 658, 654, 656, 1896 658, 656, 648, 1897 659, 651, 649, 1898 659, 653, 651, 1899 659, 655, 653, 1900 659, 657, 655, 1901 659, 649, 657, 1902 660, 661, 662, 1903 662, 661, 663, 1904 662, 663, 664, 1905 664, 663, 665, 1906 664, 665, 666, 1907 666, 665, 667, 1908 666, 667, 668, 1909 668, 667, 669, 1910 668, 669, 660, 1911 660, 669, 661, 1912 670, 660, 662, 1913 670, 662, 664, 1914 670, 664, 666, 1915 670, 666, 668, 1916 670, 668, 660, 1917 671, 663, 661, 1918 671, 665, 663, 1919 671, 667, 665, 1920 671, 669, 667, 1921 671, 661, 669, 1922 672, 673, 674, 1923 674, 673, 675, 1924 674, 675, 676, 1925 676, 675, 677, 1926 676, 677, 678, 1927 678, 677, 679, 1928 678, 679, 680, 1929 680, 679, 681, 1930 680, 681, 672, 1931 672, 681, 673, 1932 682, 672, 674, 1933 682, 674, 676, 1934 682, 676, 678, 1935 682, 678, 680, 1936 682, 680, 672, 1937 683, 675, 673, 1938 683, 677, 675, 1939 683, 679, 677, 1940 683, 681, 679, 1941 683, 673, 681, 1942 684, 685, 686, 1943 686, 685, 687, 1944 686, 687, 688, 1945 688, 687, 689, 1946 688, 689, 690, 1947 690, 689, 691, 1948 690, 691, 692, 1949 692, 691, 693, 1950 692, 693, 684, 1951 684, 693, 685, 1952 694, 684, 686, 1953 694, 686, 688, 1954 694, 688, 690, 1955 694, 690, 692, 1956 694, 692, 684, 1957 695, 687, 685, 1958 695, 689, 687, 1959 695, 691, 689, 1960 695, 693, 691, 1961 695, 685, 693, 1962 696, 697, 698, 1963 698, 697, 699, 1964 698, 699, 700, 1965 700, 699, 701, 1966 700, 701, 702, 1967 702, 701, 703, 1968 702, 703, 704, 1969 704, 703, 705, 1970 704, 705, 696, 1971 696, 705, 697, 1972 706, 696, 698, 1973 706, 698, 700, 1974 706, 700, 702, 1975 706, 702, 704, 1976 706, 704, 696, 1977 707, 699, 697, 1978 707, 701, 699, 1979 707, 703, 701, 1980 707, 705, 703, 1981 707, 697, 705, 1982 708, 709, 710, 1983 710, 709, 711, 1984 710, 711, 712, 1985 712, 711, 713, 1986 712, 713, 714, 1987 714, 713, 715, 1988 714, 715, 716, 1989 716, 715, 717, 1990 716, 717, 708, 1991 708, 717, 709, 1992 718, 708, 710, 1993 718, 710, 712, 1994 718, 712, 714, 1995 718, 714, 716, 1996 718, 716, 708, 1997 719, 711, 709, 1998 719, 713, 711, 1999 719, 715, 713, 2000 719, 717, 715, 2001 719, 709, 717, 2002 720, 721, 722, 2003 722, 721, 723, 2004 722, 723, 724, 2005 724, 723, 725, 2006 724, 725, 726, 2007 726, 725, 727, 2008 726, 727, 728, 2009 728, 727, 729, 2010 728, 729, 720, 2011 720, 729, 721, 2012 730, 720, 722, 2013 730, 722, 724, 2014 730, 724, 726, 2015 730, 726, 728, 2016 730, 728, 720, 2017 731, 723, 721, 2018 731, 725, 723, 2019 731, 727, 725, 2020 731, 729, 727, 2021 731, 721, 729, 2022 732, 733, 734, 2023 734, 733, 735, 2024 734, 735, 736, 2025 736, 735, 737, 2026 736, 737, 738, 2027 738, 737, 739, 2028 738, 739, 740, 2029 740, 739, 741, 2030 740, 741, 732, 2031 732, 741, 733, 2032 742, 732, 734, 2033 742, 734, 736, 2034 742, 736, 738, 2035 742, 738, 740, 2036 742, 740, 732, 2037 743, 735, 733, 2038 743, 737, 735, 2039 743, 739, 737, 2040 743, 741, 739, 2041 743, 733, 741, 2042 744, 745, 746, 2043 746, 745, 747, 2044 746, 747, 748, 2045 748, 747, 749, 2046 748, 749, 750, 2047 750, 749, 751, 2048 750, 751, 752, 2049 752, 751, 753, 2050 752, 753, 744, 2051 744, 753, 745, 2052 754, 744, 746, 2053 754, 746, 748, 2054 754, 748, 750, 2055 754, 750, 752, 2056 754, 752, 744, 2057 755, 747, 745, 2058 755, 749, 747, 2059 755, 751, 749, 2060 755, 753, 751, 2061 755, 745, 753, 2062 756, 757, 758, 2063 758, 757, 759, 2064 758, 759, 760, 2065 760, 759, 761, 2066 760, 761, 762, 2067 762, 761, 763, 2068 762, 763, 764, 2069 764, 763, 765, 2070 764, 765, 756, 2071 756, 765, 757, 2072 766, 756, 758, 2073 766, 758, 760, 2074 766, 760, 762, 2075 766, 762, 764, 2076 766, 764, 756, 2077 767, 759, 757, 2078 767, 761, 759, 2079 767, 763, 761, 2080 767, 765, 763, 2081 767, 757, 765 2082 }; 2083 static const unsigned some_enclosures_properties[3840] = 2084 { 2085 0, 1, 0, 2086 0, 1, 0, 2087 0, 1, 0, 2088 0, 1, 0, 2089 0, 1, 0, 2090 0, 1, 0, 2091 0, 1, 0, 2092 0, 1, 0, 2093 0, 1, 0, 2094 0, 1, 0, 2095 0, 1, 0, 2096 0, 1, 0, 2097 0, 1, 0, 2098 0, 1, 0, 2099 0, 1, 0, 2100 0, 1, 0, 2101 0, 1, 0, 2102 0, 1, 0, 2103 0, 1, 0, 2104 0, 1, 0, 2105 1, 2, 0, 2106 1, 2, 0, 2107 1, 2, 0, 2108 1, 2, 0, 2109 1, 2, 0, 2110 1, 2, 0, 2111 1, 2, 0, 2112 1, 2, 0, 2113 1, 2, 0, 2114 1, 2, 0, 2115 1, 2, 0, 2116 1, 2, 0, 2117 1, 2, 0, 2118 1, 2, 0, 2119 1, 2, 0, 2120 1, 2, 0, 2121 1, 2, 0, 2122 1, 2, 0, 2123 1, 2, 0, 2124 1, 2, 0, 2125 2, 3, 0, 2126 2, 3, 0, 2127 2, 3, 0, 2128 2, 3, 0, 2129 2, 3, 0, 2130 2, 3, 0, 2131 2, 3, 0, 2132 2, 3, 0, 2133 2, 3, 0, 2134 2, 3, 0, 2135 2, 3, 0, 2136 2, 3, 0, 2137 2, 3, 0, 2138 2, 3, 0, 2139 2, 3, 0, 2140 2, 3, 0, 2141 2, 3, 0, 2142 2, 3, 0, 2143 2, 3, 0, 2144 2, 3, 0, 2145 3, 4, 0, 2146 3, 4, 0, 2147 3, 4, 0, 2148 3, 4, 0, 2149 3, 4, 0, 2150 3, 4, 0, 2151 3, 4, 0, 2152 3, 4, 0, 2153 3, 4, 0, 2154 3, 4, 0, 2155 3, 4, 0, 2156 3, 4, 0, 2157 3, 4, 0, 2158 3, 4, 0, 2159 3, 4, 0, 2160 3, 4, 0, 2161 3, 4, 0, 2162 3, 4, 0, 2163 3, 4, 0, 2164 3, 4, 0, 2165 0, 1, 0, 2166 0, 1, 0, 2167 0, 1, 0, 2168 0, 1, 0, 2169 0, 1, 0, 2170 0, 1, 0, 2171 0, 1, 0, 2172 0, 1, 0, 2173 0, 1, 0, 2174 0, 1, 0, 2175 0, 1, 0, 2176 0, 1, 0, 2177 0, 1, 0, 2178 0, 1, 0, 2179 0, 1, 0, 2180 0, 1, 0, 2181 0, 1, 0, 2182 0, 1, 0, 2183 0, 1, 0, 2184 0, 1, 0, 2185 1, 2, 0, 2186 1, 2, 0, 2187 1, 2, 0, 2188 1, 2, 0, 2189 1, 2, 0, 2190 1, 2, 0, 2191 1, 2, 0, 2192 1, 2, 0, 2193 1, 2, 0, 2194 1, 2, 0, 2195 1, 2, 0, 2196 1, 2, 0, 2197 1, 2, 0, 2198 1, 2, 0, 2199 1, 2, 0, 2200 1, 2, 0, 2201 1, 2, 0, 2202 1, 2, 0, 2203 1, 2, 0, 2204 1, 2, 0, 2205 2, 3, 0, 2206 2, 3, 0, 2207 2, 3, 0, 2208 2, 3, 0, 2209 2, 3, 0, 2210 2, 3, 0, 2211 2, 3, 0, 2212 2, 3, 0, 2213 2, 3, 0, 2214 2, 3, 0, 2215 2, 3, 0, 2216 2, 3, 0, 2217 2, 3, 0, 2218 2, 3, 0, 2219 2, 3, 0, 2220 2, 3, 0, 2221 2, 3, 0, 2222 2, 3, 0, 2223 2, 3, 0, 2224 2, 3, 0, 2225 3, 4, 0, 2226 3, 4, 0, 2227 3, 4, 0, 2228 3, 4, 0, 2229 3, 4, 0, 2230 3, 4, 0, 2231 3, 4, 0, 2232 3, 4, 0, 2233 3, 4, 0, 2234 3, 4, 0, 2235 3, 4, 0, 2236 3, 4, 0, 2237 3, 4, 0, 2238 3, 4, 0, 2239 3, 4, 0, 2240 3, 4, 0, 2241 3, 4, 0, 2242 3, 4, 0, 2243 3, 4, 0, 2244 3, 4, 0, 2245 0, 1, 0, 2246 0, 1, 0, 2247 0, 1, 0, 2248 0, 1, 0, 2249 0, 1, 0, 2250 0, 1, 0, 2251 0, 1, 0, 2252 0, 1, 0, 2253 0, 1, 0, 2254 0, 1, 0, 2255 0, 1, 0, 2256 0, 1, 0, 2257 0, 1, 0, 2258 0, 1, 0, 2259 0, 1, 0, 2260 0, 1, 0, 2261 0, 1, 0, 2262 0, 1, 0, 2263 0, 1, 0, 2264 0, 1, 0, 2265 1, 2, 0, 2266 1, 2, 0, 2267 1, 2, 0, 2268 1, 2, 0, 2269 1, 2, 0, 2270 1, 2, 0, 2271 1, 2, 0, 2272 1, 2, 0, 2273 1, 2, 0, 2274 1, 2, 0, 2275 1, 2, 0, 2276 1, 2, 0, 2277 1, 2, 0, 2278 1, 2, 0, 2279 1, 2, 0, 2280 1, 2, 0, 2281 1, 2, 0, 2282 1, 2, 0, 2283 1, 2, 0, 2284 1, 2, 0, 2285 2, 3, 0, 2286 2, 3, 0, 2287 2, 3, 0, 2288 2, 3, 0, 2289 2, 3, 0, 2290 2, 3, 0, 2291 2, 3, 0, 2292 2, 3, 0, 2293 2, 3, 0, 2294 2, 3, 0, 2295 2, 3, 0, 2296 2, 3, 0, 2297 2, 3, 0, 2298 2, 3, 0, 2299 2, 3, 0, 2300 2, 3, 0, 2301 2, 3, 0, 2302 2, 3, 0, 2303 2, 3, 0, 2304 2, 3, 0, 2305 3, 4, 0, 2306 3, 4, 0, 2307 3, 4, 0, 2308 3, 4, 0, 2309 3, 4, 0, 2310 3, 4, 0, 2311 3, 4, 0, 2312 3, 4, 0, 2313 3, 4, 0, 2314 3, 4, 0, 2315 3, 4, 0, 2316 3, 4, 0, 2317 3, 4, 0, 2318 3, 4, 0, 2319 3, 4, 0, 2320 3, 4, 0, 2321 3, 4, 0, 2322 3, 4, 0, 2323 3, 4, 0, 2324 3, 4, 0, 2325 0, 1, 0, 2326 0, 1, 0, 2327 0, 1, 0, 2328 0, 1, 0, 2329 0, 1, 0, 2330 0, 1, 0, 2331 0, 1, 0, 2332 0, 1, 0, 2333 0, 1, 0, 2334 0, 1, 0, 2335 0, 1, 0, 2336 0, 1, 0, 2337 0, 1, 0, 2338 0, 1, 0, 2339 0, 1, 0, 2340 0, 1, 0, 2341 0, 1, 0, 2342 0, 1, 0, 2343 0, 1, 0, 2344 0, 1, 0, 2345 1, 2, 0, 2346 1, 2, 0, 2347 1, 2, 0, 2348 1, 2, 0, 2349 1, 2, 0, 2350 1, 2, 0, 2351 1, 2, 0, 2352 1, 2, 0, 2353 1, 2, 0, 2354 1, 2, 0, 2355 1, 2, 0, 2356 1, 2, 0, 2357 1, 2, 0, 2358 1, 2, 0, 2359 1, 2, 0, 2360 1, 2, 0, 2361 1, 2, 0, 2362 1, 2, 0, 2363 1, 2, 0, 2364 1, 2, 0, 2365 2, 3, 0, 2366 2, 3, 0, 2367 2, 3, 0, 2368 2, 3, 0, 2369 2, 3, 0, 2370 2, 3, 0, 2371 2, 3, 0, 2372 2, 3, 0, 2373 2, 3, 0, 2374 2, 3, 0, 2375 2, 3, 0, 2376 2, 3, 0, 2377 2, 3, 0, 2378 2, 3, 0, 2379 2, 3, 0, 2380 2, 3, 0, 2381 2, 3, 0, 2382 2, 3, 0, 2383 2, 3, 0, 2384 2, 3, 0, 2385 3, 4, 0, 2386 3, 4, 0, 2387 3, 4, 0, 2388 3, 4, 0, 2389 3, 4, 0, 2390 3, 4, 0, 2391 3, 4, 0, 2392 3, 4, 0, 2393 3, 4, 0, 2394 3, 4, 0, 2395 3, 4, 0, 2396 3, 4, 0, 2397 3, 4, 0, 2398 3, 4, 0, 2399 3, 4, 0, 2400 3, 4, 0, 2401 3, 4, 0, 2402 3, 4, 0, 2403 3, 4, 0, 2404 3, 4, 0, 2405 0, 1, 0, 2406 0, 1, 0, 2407 0, 1, 0, 2408 0, 1, 0, 2409 0, 1, 0, 2410 0, 1, 0, 2411 0, 1, 0, 2412 0, 1, 0, 2413 0, 1, 0, 2414 0, 1, 0, 2415 0, 1, 0, 2416 0, 1, 0, 2417 0, 1, 0, 2418 0, 1, 0, 2419 0, 1, 0, 2420 0, 1, 0, 2421 0, 1, 0, 2422 0, 1, 0, 2423 0, 1, 0, 2424 0, 1, 0, 2425 1, 2, 0, 2426 1, 2, 0, 2427 1, 2, 0, 2428 1, 2, 0, 2429 1, 2, 0, 2430 1, 2, 0, 2431 1, 2, 0, 2432 1, 2, 0, 2433 1, 2, 0, 2434 1, 2, 0, 2435 1, 2, 0, 2436 1, 2, 0, 2437 1, 2, 0, 2438 1, 2, 0, 2439 1, 2, 0, 2440 1, 2, 0, 2441 1, 2, 0, 2442 1, 2, 0, 2443 1, 2, 0, 2444 1, 2, 0, 2445 2, 3, 0, 2446 2, 3, 0, 2447 2, 3, 0, 2448 2, 3, 0, 2449 2, 3, 0, 2450 2, 3, 0, 2451 2, 3, 0, 2452 2, 3, 0, 2453 2, 3, 0, 2454 2, 3, 0, 2455 2, 3, 0, 2456 2, 3, 0, 2457 2, 3, 0, 2458 2, 3, 0, 2459 2, 3, 0, 2460 2, 3, 0, 2461 2, 3, 0, 2462 2, 3, 0, 2463 2, 3, 0, 2464 2, 3, 0, 2465 3, 4, 0, 2466 3, 4, 0, 2467 3, 4, 0, 2468 3, 4, 0, 2469 3, 4, 0, 2470 3, 4, 0, 2471 3, 4, 0, 2472 3, 4, 0, 2473 3, 4, 0, 2474 3, 4, 0, 2475 3, 4, 0, 2476 3, 4, 0, 2477 3, 4, 0, 2478 3, 4, 0, 2479 3, 4, 0, 2480 3, 4, 0, 2481 3, 4, 0, 2482 3, 4, 0, 2483 3, 4, 0, 2484 3, 4, 0, 2485 0, 1, 0, 2486 0, 1, 0, 2487 0, 1, 0, 2488 0, 1, 0, 2489 0, 1, 0, 2490 0, 1, 0, 2491 0, 1, 0, 2492 0, 1, 0, 2493 0, 1, 0, 2494 0, 1, 0, 2495 0, 1, 0, 2496 0, 1, 0, 2497 0, 1, 0, 2498 0, 1, 0, 2499 0, 1, 0, 2500 0, 1, 0, 2501 0, 1, 0, 2502 0, 1, 0, 2503 0, 1, 0, 2504 0, 1, 0, 2505 1, 2, 0, 2506 1, 2, 0, 2507 1, 2, 0, 2508 1, 2, 0, 2509 1, 2, 0, 2510 1, 2, 0, 2511 1, 2, 0, 2512 1, 2, 0, 2513 1, 2, 0, 2514 1, 2, 0, 2515 1, 2, 0, 2516 1, 2, 0, 2517 1, 2, 0, 2518 1, 2, 0, 2519 1, 2, 0, 2520 1, 2, 0, 2521 1, 2, 0, 2522 1, 2, 0, 2523 1, 2, 0, 2524 1, 2, 0, 2525 2, 3, 0, 2526 2, 3, 0, 2527 2, 3, 0, 2528 2, 3, 0, 2529 2, 3, 0, 2530 2, 3, 0, 2531 2, 3, 0, 2532 2, 3, 0, 2533 2, 3, 0, 2534 2, 3, 0, 2535 2, 3, 0, 2536 2, 3, 0, 2537 2, 3, 0, 2538 2, 3, 0, 2539 2, 3, 0, 2540 2, 3, 0, 2541 2, 3, 0, 2542 2, 3, 0, 2543 2, 3, 0, 2544 2, 3, 0, 2545 3, 4, 0, 2546 3, 4, 0, 2547 3, 4, 0, 2548 3, 4, 0, 2549 3, 4, 0, 2550 3, 4, 0, 2551 3, 4, 0, 2552 3, 4, 0, 2553 3, 4, 0, 2554 3, 4, 0, 2555 3, 4, 0, 2556 3, 4, 0, 2557 3, 4, 0, 2558 3, 4, 0, 2559 3, 4, 0, 2560 3, 4, 0, 2561 3, 4, 0, 2562 3, 4, 0, 2563 3, 4, 0, 2564 3, 4, 0, 2565 0, 1, 0, 2566 0, 1, 0, 2567 0, 1, 0, 2568 0, 1, 0, 2569 0, 1, 0, 2570 0, 1, 0, 2571 0, 1, 0, 2572 0, 1, 0, 2573 0, 1, 0, 2574 0, 1, 0, 2575 0, 1, 0, 2576 0, 1, 0, 2577 0, 1, 0, 2578 0, 1, 0, 2579 0, 1, 0, 2580 0, 1, 0, 2581 0, 1, 0, 2582 0, 1, 0, 2583 0, 1, 0, 2584 0, 1, 0, 2585 1, 2, 0, 2586 1, 2, 0, 2587 1, 2, 0, 2588 1, 2, 0, 2589 1, 2, 0, 2590 1, 2, 0, 2591 1, 2, 0, 2592 1, 2, 0, 2593 1, 2, 0, 2594 1, 2, 0, 2595 1, 2, 0, 2596 1, 2, 0, 2597 1, 2, 0, 2598 1, 2, 0, 2599 1, 2, 0, 2600 1, 2, 0, 2601 1, 2, 0, 2602 1, 2, 0, 2603 1, 2, 0, 2604 1, 2, 0, 2605 2, 3, 0, 2606 2, 3, 0, 2607 2, 3, 0, 2608 2, 3, 0, 2609 2, 3, 0, 2610 2, 3, 0, 2611 2, 3, 0, 2612 2, 3, 0, 2613 2, 3, 0, 2614 2, 3, 0, 2615 2, 3, 0, 2616 2, 3, 0, 2617 2, 3, 0, 2618 2, 3, 0, 2619 2, 3, 0, 2620 2, 3, 0, 2621 2, 3, 0, 2622 2, 3, 0, 2623 2, 3, 0, 2624 2, 3, 0, 2625 3, 4, 0, 2626 3, 4, 0, 2627 3, 4, 0, 2628 3, 4, 0, 2629 3, 4, 0, 2630 3, 4, 0, 2631 3, 4, 0, 2632 3, 4, 0, 2633 3, 4, 0, 2634 3, 4, 0, 2635 3, 4, 0, 2636 3, 4, 0, 2637 3, 4, 0, 2638 3, 4, 0, 2639 3, 4, 0, 2640 3, 4, 0, 2641 3, 4, 0, 2642 3, 4, 0, 2643 3, 4, 0, 2644 3, 4, 0, 2645 0, 1, 0, 2646 0, 1, 0, 2647 0, 1, 0, 2648 0, 1, 0, 2649 0, 1, 0, 2650 0, 1, 0, 2651 0, 1, 0, 2652 0, 1, 0, 2653 0, 1, 0, 2654 0, 1, 0, 2655 0, 1, 0, 2656 0, 1, 0, 2657 0, 1, 0, 2658 0, 1, 0, 2659 0, 1, 0, 2660 0, 1, 0, 2661 0, 1, 0, 2662 0, 1, 0, 2663 0, 1, 0, 2664 0, 1, 0, 2665 1, 2, 0, 2666 1, 2, 0, 2667 1, 2, 0, 2668 1, 2, 0, 2669 1, 2, 0, 2670 1, 2, 0, 2671 1, 2, 0, 2672 1, 2, 0, 2673 1, 2, 0, 2674 1, 2, 0, 2675 1, 2, 0, 2676 1, 2, 0, 2677 1, 2, 0, 2678 1, 2, 0, 2679 1, 2, 0, 2680 1, 2, 0, 2681 1, 2, 0, 2682 1, 2, 0, 2683 1, 2, 0, 2684 1, 2, 0, 2685 2, 3, 0, 2686 2, 3, 0, 2687 2, 3, 0, 2688 2, 3, 0, 2689 2, 3, 0, 2690 2, 3, 0, 2691 2, 3, 0, 2692 2, 3, 0, 2693 2, 3, 0, 2694 2, 3, 0, 2695 2, 3, 0, 2696 2, 3, 0, 2697 2, 3, 0, 2698 2, 3, 0, 2699 2, 3, 0, 2700 2, 3, 0, 2701 2, 3, 0, 2702 2, 3, 0, 2703 2, 3, 0, 2704 2, 3, 0, 2705 3, 4, 0, 2706 3, 4, 0, 2707 3, 4, 0, 2708 3, 4, 0, 2709 3, 4, 0, 2710 3, 4, 0, 2711 3, 4, 0, 2712 3, 4, 0, 2713 3, 4, 0, 2714 3, 4, 0, 2715 3, 4, 0, 2716 3, 4, 0, 2717 3, 4, 0, 2718 3, 4, 0, 2719 3, 4, 0, 2720 3, 4, 0, 2721 3, 4, 0, 2722 3, 4, 0, 2723 3, 4, 0, 2724 3, 4, 0, 2725 0, 1, 0, 2726 0, 1, 0, 2727 0, 1, 0, 2728 0, 1, 0, 2729 0, 1, 0, 2730 0, 1, 0, 2731 0, 1, 0, 2732 0, 1, 0, 2733 0, 1, 0, 2734 0, 1, 0, 2735 0, 1, 0, 2736 0, 1, 0, 2737 0, 1, 0, 2738 0, 1, 0, 2739 0, 1, 0, 2740 0, 1, 0, 2741 0, 1, 0, 2742 0, 1, 0, 2743 0, 1, 0, 2744 0, 1, 0, 2745 1, 2, 0, 2746 1, 2, 0, 2747 1, 2, 0, 2748 1, 2, 0, 2749 1, 2, 0, 2750 1, 2, 0, 2751 1, 2, 0, 2752 1, 2, 0, 2753 1, 2, 0, 2754 1, 2, 0, 2755 1, 2, 0, 2756 1, 2, 0, 2757 1, 2, 0, 2758 1, 2, 0, 2759 1, 2, 0, 2760 1, 2, 0, 2761 1, 2, 0, 2762 1, 2, 0, 2763 1, 2, 0, 2764 1, 2, 0, 2765 2, 3, 0, 2766 2, 3, 0, 2767 2, 3, 0, 2768 2, 3, 0, 2769 2, 3, 0, 2770 2, 3, 0, 2771 2, 3, 0, 2772 2, 3, 0, 2773 2, 3, 0, 2774 2, 3, 0, 2775 2, 3, 0, 2776 2, 3, 0, 2777 2, 3, 0, 2778 2, 3, 0, 2779 2, 3, 0, 2780 2, 3, 0, 2781 2, 3, 0, 2782 2, 3, 0, 2783 2, 3, 0, 2784 2, 3, 0, 2785 3, 4, 0, 2786 3, 4, 0, 2787 3, 4, 0, 2788 3, 4, 0, 2789 3, 4, 0, 2790 3, 4, 0, 2791 3, 4, 0, 2792 3, 4, 0, 2793 3, 4, 0, 2794 3, 4, 0, 2795 3, 4, 0, 2796 3, 4, 0, 2797 3, 4, 0, 2798 3, 4, 0, 2799 3, 4, 0, 2800 3, 4, 0, 2801 3, 4, 0, 2802 3, 4, 0, 2803 3, 4, 0, 2804 3, 4, 0, 2805 0, 1, 0, 2806 0, 1, 0, 2807 0, 1, 0, 2808 0, 1, 0, 2809 0, 1, 0, 2810 0, 1, 0, 2811 0, 1, 0, 2812 0, 1, 0, 2813 0, 1, 0, 2814 0, 1, 0, 2815 0, 1, 0, 2816 0, 1, 0, 2817 0, 1, 0, 2818 0, 1, 0, 2819 0, 1, 0, 2820 0, 1, 0, 2821 0, 1, 0, 2822 0, 1, 0, 2823 0, 1, 0, 2824 0, 1, 0, 2825 1, 2, 0, 2826 1, 2, 0, 2827 1, 2, 0, 2828 1, 2, 0, 2829 1, 2, 0, 2830 1, 2, 0, 2831 1, 2, 0, 2832 1, 2, 0, 2833 1, 2, 0, 2834 1, 2, 0, 2835 1, 2, 0, 2836 1, 2, 0, 2837 1, 2, 0, 2838 1, 2, 0, 2839 1, 2, 0, 2840 1, 2, 0, 2841 1, 2, 0, 2842 1, 2, 0, 2843 1, 2, 0, 2844 1, 2, 0, 2845 2, 3, 0, 2846 2, 3, 0, 2847 2, 3, 0, 2848 2, 3, 0, 2849 2, 3, 0, 2850 2, 3, 0, 2851 2, 3, 0, 2852 2, 3, 0, 2853 2, 3, 0, 2854 2, 3, 0, 2855 2, 3, 0, 2856 2, 3, 0, 2857 2, 3, 0, 2858 2, 3, 0, 2859 2, 3, 0, 2860 2, 3, 0, 2861 2, 3, 0, 2862 2, 3, 0, 2863 2, 3, 0, 2864 2, 3, 0, 2865 3, 4, 0, 2866 3, 4, 0, 2867 3, 4, 0, 2868 3, 4, 0, 2869 3, 4, 0, 2870 3, 4, 0, 2871 3, 4, 0, 2872 3, 4, 0, 2873 3, 4, 0, 2874 3, 4, 0, 2875 3, 4, 0, 2876 3, 4, 0, 2877 3, 4, 0, 2878 3, 4, 0, 2879 3, 4, 0, 2880 3, 4, 0, 2881 3, 4, 0, 2882 3, 4, 0, 2883 3, 4, 0, 2884 3, 4, 0, 2885 0, 1, 0, 2886 0, 1, 0, 2887 0, 1, 0, 2888 0, 1, 0, 2889 0, 1, 0, 2890 0, 1, 0, 2891 0, 1, 0, 2892 0, 1, 0, 2893 0, 1, 0, 2894 0, 1, 0, 2895 0, 1, 0, 2896 0, 1, 0, 2897 0, 1, 0, 2898 0, 1, 0, 2899 0, 1, 0, 2900 0, 1, 0, 2901 0, 1, 0, 2902 0, 1, 0, 2903 0, 1, 0, 2904 0, 1, 0, 2905 1, 2, 0, 2906 1, 2, 0, 2907 1, 2, 0, 2908 1, 2, 0, 2909 1, 2, 0, 2910 1, 2, 0, 2911 1, 2, 0, 2912 1, 2, 0, 2913 1, 2, 0, 2914 1, 2, 0, 2915 1, 2, 0, 2916 1, 2, 0, 2917 1, 2, 0, 2918 1, 2, 0, 2919 1, 2, 0, 2920 1, 2, 0, 2921 1, 2, 0, 2922 1, 2, 0, 2923 1, 2, 0, 2924 1, 2, 0, 2925 2, 3, 0, 2926 2, 3, 0, 2927 2, 3, 0, 2928 2, 3, 0, 2929 2, 3, 0, 2930 2, 3, 0, 2931 2, 3, 0, 2932 2, 3, 0, 2933 2, 3, 0, 2934 2, 3, 0, 2935 2, 3, 0, 2936 2, 3, 0, 2937 2, 3, 0, 2938 2, 3, 0, 2939 2, 3, 0, 2940 2, 3, 0, 2941 2, 3, 0, 2942 2, 3, 0, 2943 2, 3, 0, 2944 2, 3, 0, 2945 3, 4, 0, 2946 3, 4, 0, 2947 3, 4, 0, 2948 3, 4, 0, 2949 3, 4, 0, 2950 3, 4, 0, 2951 3, 4, 0, 2952 3, 4, 0, 2953 3, 4, 0, 2954 3, 4, 0, 2955 3, 4, 0, 2956 3, 4, 0, 2957 3, 4, 0, 2958 3, 4, 0, 2959 3, 4, 0, 2960 3, 4, 0, 2961 3, 4, 0, 2962 3, 4, 0, 2963 3, 4, 0, 2964 3, 4, 0, 2965 0, 1, 0, 2966 0, 1, 0, 2967 0, 1, 0, 2968 0, 1, 0, 2969 0, 1, 0, 2970 0, 1, 0, 2971 0, 1, 0, 2972 0, 1, 0, 2973 0, 1, 0, 2974 0, 1, 0, 2975 0, 1, 0, 2976 0, 1, 0, 2977 0, 1, 0, 2978 0, 1, 0, 2979 0, 1, 0, 2980 0, 1, 0, 2981 0, 1, 0, 2982 0, 1, 0, 2983 0, 1, 0, 2984 0, 1, 0, 2985 1, 2, 0, 2986 1, 2, 0, 2987 1, 2, 0, 2988 1, 2, 0, 2989 1, 2, 0, 2990 1, 2, 0, 2991 1, 2, 0, 2992 1, 2, 0, 2993 1, 2, 0, 2994 1, 2, 0, 2995 1, 2, 0, 2996 1, 2, 0, 2997 1, 2, 0, 2998 1, 2, 0, 2999 1, 2, 0, 3000 1, 2, 0, 3001 1, 2, 0, 3002 1, 2, 0, 3003 1, 2, 0, 3004 1, 2, 0, 3005 2, 3, 0, 3006 2, 3, 0, 3007 2, 3, 0, 3008 2, 3, 0, 3009 2, 3, 0, 3010 2, 3, 0, 3011 2, 3, 0, 3012 2, 3, 0, 3013 2, 3, 0, 3014 2, 3, 0, 3015 2, 3, 0, 3016 2, 3, 0, 3017 2, 3, 0, 3018 2, 3, 0, 3019 2, 3, 0, 3020 2, 3, 0, 3021 2, 3, 0, 3022 2, 3, 0, 3023 2, 3, 0, 3024 2, 3, 0, 3025 3, 4, 0, 3026 3, 4, 0, 3027 3, 4, 0, 3028 3, 4, 0, 3029 3, 4, 0, 3030 3, 4, 0, 3031 3, 4, 0, 3032 3, 4, 0, 3033 3, 4, 0, 3034 3, 4, 0, 3035 3, 4, 0, 3036 3, 4, 0, 3037 3, 4, 0, 3038 3, 4, 0, 3039 3, 4, 0, 3040 3, 4, 0, 3041 3, 4, 0, 3042 3, 4, 0, 3043 3, 4, 0, 3044 3, 4, 0, 3045 0, 1, 0, 3046 0, 1, 0, 3047 0, 1, 0, 3048 0, 1, 0, 3049 0, 1, 0, 3050 0, 1, 0, 3051 0, 1, 0, 3052 0, 1, 0, 3053 0, 1, 0, 3054 0, 1, 0, 3055 0, 1, 0, 3056 0, 1, 0, 3057 0, 1, 0, 3058 0, 1, 0, 3059 0, 1, 0, 3060 0, 1, 0, 3061 0, 1, 0, 3062 0, 1, 0, 3063 0, 1, 0, 3064 0, 1, 0, 3065 1, 2, 0, 3066 1, 2, 0, 3067 1, 2, 0, 3068 1, 2, 0, 3069 1, 2, 0, 3070 1, 2, 0, 3071 1, 2, 0, 3072 1, 2, 0, 3073 1, 2, 0, 3074 1, 2, 0, 3075 1, 2, 0, 3076 1, 2, 0, 3077 1, 2, 0, 3078 1, 2, 0, 3079 1, 2, 0, 3080 1, 2, 0, 3081 1, 2, 0, 3082 1, 2, 0, 3083 1, 2, 0, 3084 1, 2, 0, 3085 2, 3, 0, 3086 2, 3, 0, 3087 2, 3, 0, 3088 2, 3, 0, 3089 2, 3, 0, 3090 2, 3, 0, 3091 2, 3, 0, 3092 2, 3, 0, 3093 2, 3, 0, 3094 2, 3, 0, 3095 2, 3, 0, 3096 2, 3, 0, 3097 2, 3, 0, 3098 2, 3, 0, 3099 2, 3, 0, 3100 2, 3, 0, 3101 2, 3, 0, 3102 2, 3, 0, 3103 2, 3, 0, 3104 2, 3, 0, 3105 3, 4, 0, 3106 3, 4, 0, 3107 3, 4, 0, 3108 3, 4, 0, 3109 3, 4, 0, 3110 3, 4, 0, 3111 3, 4, 0, 3112 3, 4, 0, 3113 3, 4, 0, 3114 3, 4, 0, 3115 3, 4, 0, 3116 3, 4, 0, 3117 3, 4, 0, 3118 3, 4, 0, 3119 3, 4, 0, 3120 3, 4, 0, 3121 3, 4, 0, 3122 3, 4, 0, 3123 3, 4, 0, 3124 3, 4, 0, 3125 0, 1, 0, 3126 0, 1, 0, 3127 0, 1, 0, 3128 0, 1, 0, 3129 0, 1, 0, 3130 0, 1, 0, 3131 0, 1, 0, 3132 0, 1, 0, 3133 0, 1, 0, 3134 0, 1, 0, 3135 0, 1, 0, 3136 0, 1, 0, 3137 0, 1, 0, 3138 0, 1, 0, 3139 0, 1, 0, 3140 0, 1, 0, 3141 0, 1, 0, 3142 0, 1, 0, 3143 0, 1, 0, 3144 0, 1, 0, 3145 1, 2, 0, 3146 1, 2, 0, 3147 1, 2, 0, 3148 1, 2, 0, 3149 1, 2, 0, 3150 1, 2, 0, 3151 1, 2, 0, 3152 1, 2, 0, 3153 1, 2, 0, 3154 1, 2, 0, 3155 1, 2, 0, 3156 1, 2, 0, 3157 1, 2, 0, 3158 1, 2, 0, 3159 1, 2, 0, 3160 1, 2, 0, 3161 1, 2, 0, 3162 1, 2, 0, 3163 1, 2, 0, 3164 1, 2, 0, 3165 2, 3, 0, 3166 2, 3, 0, 3167 2, 3, 0, 3168 2, 3, 0, 3169 2, 3, 0, 3170 2, 3, 0, 3171 2, 3, 0, 3172 2, 3, 0, 3173 2, 3, 0, 3174 2, 3, 0, 3175 2, 3, 0, 3176 2, 3, 0, 3177 2, 3, 0, 3178 2, 3, 0, 3179 2, 3, 0, 3180 2, 3, 0, 3181 2, 3, 0, 3182 2, 3, 0, 3183 2, 3, 0, 3184 2, 3, 0, 3185 3, 4, 0, 3186 3, 4, 0, 3187 3, 4, 0, 3188 3, 4, 0, 3189 3, 4, 0, 3190 3, 4, 0, 3191 3, 4, 0, 3192 3, 4, 0, 3193 3, 4, 0, 3194 3, 4, 0, 3195 3, 4, 0, 3196 3, 4, 0, 3197 3, 4, 0, 3198 3, 4, 0, 3199 3, 4, 0, 3200 3, 4, 0, 3201 3, 4, 0, 3202 3, 4, 0, 3203 3, 4, 0, 3204 3, 4, 0, 3205 0, 1, 0, 3206 0, 1, 0, 3207 0, 1, 0, 3208 0, 1, 0, 3209 0, 1, 0, 3210 0, 1, 0, 3211 0, 1, 0, 3212 0, 1, 0, 3213 0, 1, 0, 3214 0, 1, 0, 3215 0, 1, 0, 3216 0, 1, 0, 3217 0, 1, 0, 3218 0, 1, 0, 3219 0, 1, 0, 3220 0, 1, 0, 3221 0, 1, 0, 3222 0, 1, 0, 3223 0, 1, 0, 3224 0, 1, 0, 3225 1, 2, 0, 3226 1, 2, 0, 3227 1, 2, 0, 3228 1, 2, 0, 3229 1, 2, 0, 3230 1, 2, 0, 3231 1, 2, 0, 3232 1, 2, 0, 3233 1, 2, 0, 3234 1, 2, 0, 3235 1, 2, 0, 3236 1, 2, 0, 3237 1, 2, 0, 3238 1, 2, 0, 3239 1, 2, 0, 3240 1, 2, 0, 3241 1, 2, 0, 3242 1, 2, 0, 3243 1, 2, 0, 3244 1, 2, 0, 3245 2, 3, 0, 3246 2, 3, 0, 3247 2, 3, 0, 3248 2, 3, 0, 3249 2, 3, 0, 3250 2, 3, 0, 3251 2, 3, 0, 3252 2, 3, 0, 3253 2, 3, 0, 3254 2, 3, 0, 3255 2, 3, 0, 3256 2, 3, 0, 3257 2, 3, 0, 3258 2, 3, 0, 3259 2, 3, 0, 3260 2, 3, 0, 3261 2, 3, 0, 3262 2, 3, 0, 3263 2, 3, 0, 3264 2, 3, 0, 3265 3, 4, 0, 3266 3, 4, 0, 3267 3, 4, 0, 3268 3, 4, 0, 3269 3, 4, 0, 3270 3, 4, 0, 3271 3, 4, 0, 3272 3, 4, 0, 3273 3, 4, 0, 3274 3, 4, 0, 3275 3, 4, 0, 3276 3, 4, 0, 3277 3, 4, 0, 3278 3, 4, 0, 3279 3, 4, 0, 3280 3, 4, 0, 3281 3, 4, 0, 3282 3, 4, 0, 3283 3, 4, 0, 3284 3, 4, 0, 3285 0, 1, 0, 3286 0, 1, 0, 3287 0, 1, 0, 3288 0, 1, 0, 3289 0, 1, 0, 3290 0, 1, 0, 3291 0, 1, 0, 3292 0, 1, 0, 3293 0, 1, 0, 3294 0, 1, 0, 3295 0, 1, 0, 3296 0, 1, 0, 3297 0, 1, 0, 3298 0, 1, 0, 3299 0, 1, 0, 3300 0, 1, 0, 3301 0, 1, 0, 3302 0, 1, 0, 3303 0, 1, 0, 3304 0, 1, 0, 3305 1, 2, 0, 3306 1, 2, 0, 3307 1, 2, 0, 3308 1, 2, 0, 3309 1, 2, 0, 3310 1, 2, 0, 3311 1, 2, 0, 3312 1, 2, 0, 3313 1, 2, 0, 3314 1, 2, 0, 3315 1, 2, 0, 3316 1, 2, 0, 3317 1, 2, 0, 3318 1, 2, 0, 3319 1, 2, 0, 3320 1, 2, 0, 3321 1, 2, 0, 3322 1, 2, 0, 3323 1, 2, 0, 3324 1, 2, 0, 3325 2, 3, 0, 3326 2, 3, 0, 3327 2, 3, 0, 3328 2, 3, 0, 3329 2, 3, 0, 3330 2, 3, 0, 3331 2, 3, 0, 3332 2, 3, 0, 3333 2, 3, 0, 3334 2, 3, 0, 3335 2, 3, 0, 3336 2, 3, 0, 3337 2, 3, 0, 3338 2, 3, 0, 3339 2, 3, 0, 3340 2, 3, 0, 3341 2, 3, 0, 3342 2, 3, 0, 3343 2, 3, 0, 3344 2, 3, 0, 3345 3, 4, 0, 3346 3, 4, 0, 3347 3, 4, 0, 3348 3, 4, 0, 3349 3, 4, 0, 3350 3, 4, 0, 3351 3, 4, 0, 3352 3, 4, 0, 3353 3, 4, 0, 3354 3, 4, 0, 3355 3, 4, 0, 3356 3, 4, 0, 3357 3, 4, 0, 3358 3, 4, 0, 3359 3, 4, 0, 3360 3, 4, 0, 3361 3, 4, 0, 3362 3, 4, 0, 3363 3, 4, 0, 3364 3, 4, 0 3365 }; 3366 3367 #define NB_CYL_X 4 3368 #define NB_CYL_Y 4 3369 #define NB_CYL_Z 4 3370 #define NB_CYL (NB_CYL_X * NB_CYL_Y * NB_CYL_Z) 3371 #define CYL_VRTX_COUNT 12u 3372 #define CYL_TRG_COUNT 20u 3373 3374 int 3375 main(int argc, char** argv) 3376 { 3377 struct mem_allocator allocator; 3378 struct senc3d_device* dev = NULL; 3379 struct senc3d_scene* scn = NULL; 3380 struct context ctx = CONTEXT_NULL__; 3381 unsigned e, count; 3382 (void)argc, (void)argv; 3383 3384 OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); 3385 OK(senc3d_device_create(NULL, &allocator, SENC3D_NTHREADS_DEFAULT, 1, &dev)); 3386 3387 /* Create a scene */ 3388 ctx.positions = some_enclosures_vertices; 3389 ctx.indices = some_enclosures_triangles; 3390 ctx.properties = some_enclosures_properties; 3391 OK(senc3d_scene_create(dev, 3392 SENC3D_CONVENTION_NORMAL_FRONT | SENC3D_CONVENTION_NORMAL_INSIDE, 3393 some_enclosures_triangles_count, get_indices, get_media_from_properties, 3394 some_enclosures_vertices_count, get_position, &ctx, &scn)); 3395 3396 OK(senc3d_scene_get_vertices_count(scn, &count)); 3397 CHK(count == NB_CYL * CYL_VRTX_COUNT); 3398 OK(senc3d_scene_get_triangles_count(scn, &count)); 3399 CHK(count == NB_CYL * CYL_TRG_COUNT); 3400 3401 OK(senc3d_scene_get_enclosure_count(scn, &count)); 3402 CHK(count == 1 + NB_CYL); 3403 FOR_EACH(e, 0, count) { 3404 struct senc3d_enclosure* enclosure; 3405 struct senc3d_enclosure_header header; 3406 unsigned m; 3407 OK(senc3d_scene_get_enclosure(scn, e, &enclosure)); 3408 OK(senc3d_enclosure_get_header(enclosure, &header)); 3409 CHK(header.enclosed_media_count == 1); 3410 OK(senc3d_enclosure_get_medium(enclosure, 0, &m)); 3411 CHK(header.primitives_count == 3412 (header.is_infinite /* Outermost enclosure: NB_CYL_X*NB_CYL_Y cylinders */ 3413 ? NB_CYL_X * NB_CYL_Y * CYL_TRG_COUNT 3414 : (m == 0 3415 ? CYL_TRG_COUNT /* Innermost enclosures: 1 cylinder */ 3416 : 2 * CYL_TRG_COUNT))); /* Other enclosures: 2 cylinders */ 3417 OK(senc3d_enclosure_ref_put(enclosure)); 3418 } 3419 3420 OK(senc3d_scene_ref_put(scn)); 3421 OK(senc3d_device_ref_put(dev)); 3422 3423 check_memory_allocator(&allocator); 3424 mem_shutdown_proxy_allocator(&allocator); 3425 CHK(mem_allocated_size() == 0); 3426 return 0; 3427 }